javascript - Python-Django 和 PyQt4 的问题

标签 javascript python django web-scraping pyqt4

已修复此问题已通过将 QApplication 移出 main() 得到解决。

您好,我正在尝试实现一个 Web 服务,该服务执行给定 URL 的 JavaScript 代码并返回最终的 HTML。我使用 PyQt4 进行 JS 处理,并使用 Django 1.4 Web 框架。 问题是:该脚本在命令邀请中始终有效,但是当我将其集成到 Django 时,它仅在第一次运行 Django 本地服务器后才有效,然后在以下执行期间它会发出警告:

WARNING: QApplication was not created in the main() thread
QObject::startTimer: QTimer can only be used with threads started with QThread

我得到了错误的结果。 问题是我没有使用任何线程...... 这是我在 Django 上使用的脚本(urlconf 通过给定的 url 引导至此主要功能):

#!/usr/bin/env python

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
from time import time, sleep

app = QApplication(sys.argv)

def wait(app, secs=1):
    deadline = time() + secs
    while time() < deadline:
        sleep(0)
        app.processEvents()

def main(url):
 #   app = QApplication(sys.argv)

    web = QWebView()
    web.load(QUrl(url))

    wait(app, 15)

    return web.page().mainFrame().toHtml().toUtf8()

您以前见过这个或尝试过做类似的事情吗?请帮我提供任何信息,谢谢

附注这是我在这里发表的第一篇文章,我希望一切都清楚:)

编辑感谢 Rostyslav,警告消失了,但我仍然遇到销售问题。

最佳答案

实际上您使用线程

Django 开发服务器默认使用线程。您可以将可选的 --nothreading 参数传递给 runserver 命令,该命令旨在禁用服务器使用线程:

python ./manage.py runserver --nothreading ...

关于javascript - Python-Django 和 PyQt4 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11988271/

相关文章:

python - 如何在python docx模板(docxtpl)中显示图像? python

javascript - Ajax xhr onload 未在 django 应用程序中调用

python - Mongoengine..反转ListField中的项目

javascript - Handlebars json - html 转换

python - 没有名为 cv 的模块

java - Javascript 中的 GWT 自定义事件触发器

python - 在 Python 中读取 Excel 文件的跨平台方式?

python - 失败循环 : asking the user if they wish to continue (Python)

javascript - 检测变量是否已在赋值中使用

javascript - ace 编辑器文本中的可点击 url div