首页 > 解决方案 > Django 登录到 wxpython 窗口?

问题描述

我正在编写一个实用程序来启动一个 django 服务器进程,该进程将其日志输出到 wxpython 窗口中的 TextCtrl。不幸的是,一些不同的方法导致了一些奇怪的问题,即操作系统(在本例中为 OSX)在几次成功的日志条目后使程序崩溃并抱怨“非法指令”。

我目前正在通过实现一个 logging.Handler 子类来做到这一点,该子类将事件发布到 wx,其中包含要在窗口中显示的日志记录。有更好的方法吗?

谢谢!

标签: djangowxpython

解决方案


wxPython 要求它是主线程,所以我猜这可能是您的问题的根本原因。不过,您有几个很好的方法可以尝试。

首先,您可以将 Django 服务器进程作为 wxPython 程序中的线程启动。然后,您可以使用 wxPython 的线程安全方法 ( wx.CallAfter, wx.PostEvent) 与 UI 进行通信。

或者你可以单独启动 Django 并记录到一个文件中。然后启动 wxPython 并让它基本上跟踪日志文件。


推荐阅读