哪个python Web框架有无障碍的开发和部署?

Jes*_*ose 2 python cherrypy flask

我在BaseHTTPServer中编写了一个Web API.它仅用于localhost.它在GET/POST操作上返回JSON对象.

http://localhost:8888/operation?param
Run Code Online (Sandbox Code Playgroud)

和代码就像

def do_GET(self):
   if self.path=="operation":
       self.wfile.write("output")
Run Code Online (Sandbox Code Playgroud)

但我担心保持活动机制(阅读:可以重生工作的网络服务器),缺乏多线程和PITA-ful维护.


就像我说的那样,我正在研究选择这个Web框架的开发部署问题.

发展

Web界面目前有250行,功能非常简单.我正在寻找适合清洁维护和部署的东西.我不希望框架的MVC,ORM,模板和其他功能弄乱我的学习曲线.重定向到适当模块的UrL模式很不错.

部署

它应该部署在具有WSGI模块的成熟服务器上,并且最小化.这样的设置有热部署(想要更好的词),安装新的应用程序或更新代码意味着将文件复制到文件系统中的www-root.


CherryPy和Flask看起来很有趣.Django和Web2Py似乎太全面了.

ash*_*ods 6

推荐的部署wsgi的方法是作为一个长期运行的进程,嵌入式或daeomonized,而不是cgi脚本.无论哪种方式,它只是像上传文件一样有点不同,通过触摸配置文件重新启动服务器/进程通常是你使用wsgi最接近"热部署".

毋庸置疑,如果符合wsgi,框架本身不会施加任何类型的部署限制.根据您的需要选择:apache + modwsgi,gunicorn,cherry.py,paste.他们都没有提供"热部署"(afaik),你仍然需要创建一个wsgi脚本并重新加载进程.文件系统布局通常无关紧要,这很好.您通常也不会获得自动加载.我知道werkzeug和cherry.py,并且werkzeug也提供了一些非常酷的调试工具.请注意,tornado/werkzeug*本身提供了自动重载选项,但实际上考虑用于开发而不是部署,并且与wsgi模块不兼容.

但无论部署多么痛苦或无痛,建议使用类似结构的东西来自动部署,并且设置wsgi Web服务器不是那么难.

框架本身的选择有点棘手,取决于你想要工作的级别.Tornado,werkzeug是流行的低级框架,(但也包括更高级别的工具,很多是框架+网络服务器),但你也可以直接使用webob,只需插入您需要的任何其他内容.

你有像flask或瓶子这样的微框架,然后是轻量级框架,比如web2.py,或者可能是金字塔(框架有多么模糊的线条).

然后你有"全栈"django,grok,turbogears等......然后你有zope,这已经节食但仍然非常沉重.

请注意,您几乎可以对所有这些做任何事情(只取决于您想要弯曲多少),在许多情况下,您可以轻松地交换组件.我开始尝试像microframework 或可能烧瓶(你没有使用ORM的或模板,但很容易获得,一旦你这样做),而且看一看的WebOb.

*评论:将werkzeug添加到并非真正的自动重载阵营.