我的第一个Web应用程序(Python):使用CGI,还是像Django这样的框架?

p0n*_*0ny 8 python apache django google-app-engine cgi

我不想让你们全部负担细节,但基本上我是一名没有Web开发经验的第二年compsci学生.

基本上我想创建一个小的"web应用程序",它从html表单接收输入,让python脚本执行一些计算,并在浏览器中重新显示这些结果.

截至目前,我已经构建了表单和脚本.但是,当我尝试测试表单时,我的浏览器尝试下载它而不是运行脚本.据我所知,这是一个cgi脚本问题,我必须创建一个Web服务器才能测试这个脚本.

而且我被困住了.我对Web服务器以及如何设置它们知之甚少.最重要的是,我听说GCI脚本已成为过去,并且需要大量开销才能正常运行.

这导致了我的问题.如何完成我的应用程序并测试我的cgi脚本?我是否安装了apache并乱用它或者我应该调查谷歌应用引擎?有没有其他方法可以在没有cgi脚本的情况下完成此任务?像Django这样的框架适合这个?

Hel*_*lgi 10

Django虽然很好,但包罗万象并且支持得很好,对于小型Web应用程序来说有时太多了.Django希望你从一开始就遵守规则,如果你不需要它们,你必须避免像数据库和管理面板这样的事情.使用Django,它也更容易遵循其项目布局,即使它对于简单的应用来说太复杂了.

所谓的微框架可能更适合您的小应用程序.它们基于相反的原则:现在使用最少的功能,根据需要添加更多功能.

  • Flask基于Werkzeug WSGI库和Jinja2模板(后者可切换),有大量文档记录(有关virtualenv和东西的注释),非常适合小型和大型应用程序.它捆绑了一个自动重载开发服务器(在您的开发机器上不需要Apache)和Werkzeug驱动的交互式调试器.有HTML表单数据库ORM等扩展.

  • 瓶子与微框架一样小,包括1(一)个文件,包括dev服务器.将它放入项目文件夹并开始黑客攻击.内置的SimpleTemplate模板引擎是可切换的,但与Flask相比,开发服务器更加笨拙.文档不太完整,而且在我看来,整个事情就像Flask一样不那么精致和方便.

在这两种情况下,您都在本地使用dev服务器,然后使用WSGI进行部署,WSGI是两个框架都支持的Python Web应用程序的服务器接口.有许多方法可以部署WSGI应用程序,Apache mod_wsgi是受欢迎的应用程序之一.

除非一个依赖项(Bottle)优于三个(Flask,Jinja2和Werkzeug),否则我会完全使用Flask.

(还有许多其他框架,所以等待他们的用户来告诉他们.我建议避免使用web.py:它有效,但充满了魔力,与Flask或Bottle相比是不优雅的.)


Dav*_*ith 5

快速开始使用 webapp 的一种方法是首先理解,然后修改类似 App Engine“留言簿”示例的内容。这样做的好处是,运行 Web 服务器和设置数据库服务器(假设您需要持久性)所需的大部分工作都已为您完成。App Engine 还提供了一个相当灵活的开发环境。这当然不是唯一的方法,我承认推荐它是有偏见的,但它的摩擦相当低。

GCI 脚本编写几乎不会成为过去,尽管这不是酷孩子们正在做的事情。CGI 具有暴露更多原始管道的好处和诅咒。它迫使您对原始(低级)Web 架构有很多了解,但如果您有一个可以通过更简单的方法解决的直接问题,那么它也需要大量咀嚼。