如何将在django,python中开发的网站转换为桌面应用程序。 我是python的新手,django可以帮助我吗
先谢谢
答案 0 :(得分:2)
对于初学者,您必须使用Tk / Tcl等桌面技术替换Web UI。
如果这样做,您可能不希望使用HTTP作为客户端和服务之间的协议。
Django是一个Web框架。如果您要切换到桌面,则必须放弃Django。
答案 1 :(得分:2)
我认为您应该创建一个连接到Web服务器的应用程序。将RESTful API调用放入django应用程序是一个很好的答案。这意味着您基本上只是为您的服务器创建一个新的前端。
将整个 django应用程序重写为桌面应用程序是没有意义的。我的意思是,你想在哪里存储数据?
答案 2 :(得分:1)
我会尝试使用PyQt toolkit复制Django应用程序功能。
事实上,在QtWebKit的帮助下,您可以在PyQt应用程序中嵌入Web内容。我会发布一些可能有用的链接,但显然我的声誉太低,不能发布多个:)
答案 3 :(得分:1)
您可以尝试将视图分离并将其放入新的桌面应用程序中。首先,您可以使用现有的控制器和模型,并根据需要调整新视图。其次,您只能使用现有模型并构建新视图和控制器。
如果你没有完全遵守MVC原则,你可以将模型与应用程序的其余部分分离,你可以简单地重写整个事物。如果你被迫走这条路,请完全保释django和http(正如duffymo建议的那样)。
您还必须根据服务的性能要求和“沉重感”来评估这些解决方案。如果您有严格的性能要求,那么依赖HTTP层就会受到阻碍,并且为您的模型提供一个简单的API是可行的方法。
显然有很多可能的解决方案,但这是我决定适当的解决方案的方法......
答案 4 :(得分:0)
有一个名为Camelot的项目似乎尝试使用PyQt在桌面上组合类似Django的功能。虽然没试过。
答案 5 :(得分:0)
我正在考虑类似的问题。
是否足以拥有一个最小的PyQt Gui,它可以让你通过QtWebkit从localhost呈现djando-website(以某种方式摆脱循环界面上的TCP / HTTPS)?
您似乎需要的是拥有一个最小的Python-Broser,它可以在Web服务器中进行构建(我猜您甚至可以直接调用Django来获取html-payload,而无需通过HTTP / TCP层)。
答案 6 :(得分:0)
我在.bat文件中有django manage.py runserver
,在浏览器中有localhost书签栏,而且还有django-desktop-app。或制作自己的浏览器以打开localhost。 Creating a web-browser with Python and PyQT
答案 7 :(得分:0)
可以使用 pywebview 将 django 应用程序转换为桌面应用程序,并使用一些代码行。首先在 manage.py 所在的目录中创建一个 python 文件 gui.py。通过pip安装pywebview,在gui.py中编写代码
import os
import sys
import time
from threading import Thread
import webview
def start_webview():
window = webview.create_window('Hello world', 'http://localhost:8000/', confirm_close=True, width=900, height=600)
webview.start()
window.closed = os._exit(0)
def start_startdjango():
if sys.platform in ['win32', 'win64']:
os.system("python manage.py runserver {}:{}".format('127.0.0.1', '8000'))
# time.sleep(10)
else:
os.system("python3 manage.py runserver {}:{}".format('127.0.0.1', '8000'))
# time.sleep(10)
if __name__ == '__main__':
Thread(target=start_startdjango).start()
start_webview()
然后使用命令 python gui.py 运行 gui.py。 IT 将创建一个类似于桌面应用程序的窗口