社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

哪一个是支持代码重新加载的最简单的python wsgi开发服务器?[关闭]

Jorge Vargas • 5 年前 • 1769 次点击  

据我所知

  1. wsgiref-无代码重新加载
  2. Cherrypy-不仅仅是服务器
  3. mod_wsgi-所有apache开销
  4. httpserver-paste是一个包含其他内容的大包
  5. 绒毛-和浆糊一样,太多的东西。
  6. 产卵-从未使用过,但看起来足够轻。
  7. Tornado-不是真正的wsgi+完整的“框架”
  8. werkzeug-运行命令

还有其他人吗?你喜欢哪一个?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/42955
 
1769 次点击  
文章 [ 7 ]  |  最新文章 5 年前
user222202
Reply   •   1 楼
user222202    15 年前

除了其他粘贴模块之外,您还可以在任何wsgi服务器上使用paste.reloader。

# run paste reloader
import paste.reloader as reloader
reloader.install()

# run wsgiref server
from wsgiref import simple_server
simple_server.make_server('', 8080, main_wsgi_app).serve_forever()

这够简约吗?

user222202
Reply   •   2 楼
user222202    15 年前

另外,您还错过了web.py,它既小又支持代码重新加载。

bobince
Reply   •   3 楼
bobince    15 年前

一个非常简单的方法是cgi(与常规web服务器一起使用 wsgiref.handlers.CGIHandler )在生产服务器上的性能很差,但对开发很好。您可以编写一个同时作为mod_wsgi wsgiscriptalias(公开 application 对象),并作为mod_cgi scriptalias(调用 wsgiref 什么时候 __name__=='__main__' )

许多wsgi环境都有重新加载基本脚本的方法,例如mod_wsgi的 WSGIScriptReloading ,默认情况下处于启用状态。不幸的是,您可能会将大部分代码放在模块中,这并不容易重新加载。在mod_wsgi中,您还可以通过发送sigint来执行在守护进程模式下的重新加载。不幸的是,为了知道是否需要重新加载,您仍然需要嗅探用于mtime更新的每个模块。它在嵌入式模式下不工作。

一个混乱但可行的方法是嗅探属于应用程序一部分的所有模块,如果有自上次检查以来已更新的模块,则将它们全部重新加载。您必须立即重新加载它们,方法是从 sys.modules 查找(删除 None -当你在那里的时候,为了避免相对的导入查找问题,也要有值的条目),以确保它们不会保留对旧版本的交叉引用。当然,他们不能在你的申请之外留下其他的参考资料。您可以在 ModuleUpdater here .

(这个软件还没有准备好发布,但是已经为我的wsgi应用程序提供模块重新加载了几年,而且看起来很稳定。其思想是将您的所有wsgi应用程序放在一个包中的一个应用程序类中,您可以从一个wsgi/cgi/command-line入口点脚本导入该包;您可以在该脚本中包含部署配置。)

Jason Baker
Reply   •   4 楼
Jason Baker    15 年前

我推荐浆糊或樱桃。他们是最容易起床跑步的。

Alex Boschmans
Reply   •   5 楼
Alex Boschmans    15 年前

到目前为止,我一直在使用cherrypy,与django(虽然不在您的列表中,但它是我使用的唯一其他dev服务器)相比,我更喜欢它。它做到了上面所说的:它只有在你需要的时候才在那里,并且在剩下的时间里都不碍事。

使用django似乎需要订阅django的做事方式。尽管django提供了更多现成的功能(默认的管理界面,网页上的小部件),但使用cherrypy似乎只是另一个具有非常好(通常会让您惊讶于额外)功能的导入。

Mark Hildreth
Reply   •   6 楼
Mark Hildreth    15 年前

从Werkzeug查看Run_Simple:

http://werkzeug.pocoo.org/documentation/0.5.1/serving.html

除了自动重新加载代码外,您还可以使用_debugger=true在应用程序顶部包括它们漂亮的spiffy调试器(在回溯的每一行中都包括控制台)。

LeafStorm
Reply   •   7 楼
LeafStorm    15 年前

你可能想看的是 Werkzeug -它是一个wsgi实用工具工具包。它包括一个runserver函数,该函数接受wsgiref服务器并添加自动重新加载代码(您还可以将其配置为在配置文件更改时重新加载)和一个很棒的调试器。

另一方面,您对框架的轻蔑使您听起来像是打算从头开始处理所有wsgi内容,在这种情况下,我建议您使用werkzeug的实用函数来处理解析请求和生成响应。这比你自己做要有趣得多。(为了对圭多的爱,请不要使用 cgi.FieldStorage !)