如何为python服务器模块编写html gui (django)



用python构建HTML gui(例如多路tcp服务器)的方法是什么?

我熟悉用Django建立网站,但我不明白的是,tcp服务器部分如何与Django相关的视图通信?我如何实现数据共享(我是否看到树木的木材)?对我来说,问题是无状态的"get an leave"one_answers"状态满"的py模块"作为守护进程运行"之间的映射。

的问候

编辑我的独立应用程序框架:

#!/usr/bin/python
from django.core.management import setup_environ
import settings
setup_environ(settings)
from myapp.models import fanzy

def main():
    for each in fanzy.objects.all():
        print each.id, each.foo

if __name__ == '__main__':
    main()

Django只是Python,所以你用Python写的任何东西都可以被导入并引用到你为Django写的"视图"中,作为HTTP响应返回。

回答你问题的另一部分,HTTP服务器处理TCP连接与python框架通信的方式通常是通过一个称为WSGI的协议。这是获得更多关于WSGI原理知识的好地方。这是另一个

关于运行后台进程和提供进程活动视图,最好将这两个问题分开。您可以将数据写入文件或数据库,然后通过web应用程序访问和提供这些数据。

这些只是一般性的评论,因为你的问题不是很清楚。

并不总是像导入库那么容易,主要是因为进程的生命周期。例如,如果你通过CGI运行Django,每个进程一个请求,那么你的TCP服务器就不会在视图之间保持活跃。同样,如果你使用多个进程来处理请求(例如使用FastCGI),那么你将有多个服务器同时运行。

如果您希望拥有独立于请求生存期的永久网络连接,则需要在外部(守护进程)进程中运行TCP服务器。这是一些缓存方案的标准过程,其中所有的Django进程通过单个守护进程共享缓存的数据(例如Redis)。

基本上,你有两种方法。

全球联系

为每个Django进程建立一个连接(如果你有多个)作为全局对象,并从你的视图中将请求转发给它。如果您的TCP服务器被编码为每个连接处理多个请求,那么这是最方便的。但是,如果你的Django进程是多线程的,你就会遇到问题。

每个请求的连接数

如果你的TCP服务器可以接受多个短时间连接,这也是一个可行的方法。只需在视图的生命周期内打开连接。如果经常使用该对象,您甚至可以添加一些中间件来打开连接并将其存储在请求对象中。

相关内容

  • 没有找到相关文章

最新更新