我的第一个Web应用程序(蟒蛇):使用CGI,或像Django的框架?(My first web a

2019-07-29 14:01发布

我不想给你添麻烦所有的细节,但基本上我是第二年compsci学生没有web开发经验。

基本上我想创建一个小的“Web应用程序”,在输入需要从HTML形式,有一个python脚本执行一些计算,并重新显示在浏览器中的结果。

截至目前,我已经建立了形式和脚本。 然而,当我尝试测试,而不是运行脚本的形式,我的浏览器尝试下载。 我的理解,这是一个CGI脚本的问题,那我必须为了测试这个脚本创建一个Web服务器。

而继承人是我卡住了。 我知道几乎一无所知的web服务器,以及如何对它们进行设置。 最重要的是我听说GCI脚本是过去的事情,并要求以正常运行的主要开销上面。

这导致了我的问题。 我该如何去完成我的应用和测试我的CGI脚本? 难道我周围安装Apache和乱用,否则我应该寻找到像谷歌应用程序引擎? 是否有其他方式来完成这个任务,而不CGI脚本? 哪里像Django的框架,融入这个?

Answer 1:

Django的,而被漂亮的,无所不包的和良好支持,有时太多的小型Web应用程序。 Django的希望你从一开始它的规则玩,你必须避免的东西,如数据库和管理面板,如果你不需要它们。 它也更容易,使用Django,按照其项目布局,即使它是一个简单的应用程序太复杂。

所谓的微架构可能会更适合你的小应用程序。 他们在相反的原则构建的:现在使用的功能的最低限度,增加更多,因为你需要他们。

  • 烧瓶基于WERKZEUG WSGI库和模板的Jinja2(后者是可切换的),被广泛记载(与有关的virtualenv和东西笔记 )和非常适合于小和大的应用程序一样。 它捆绑了自动重新加载开发服务器(无需阿帕奇您的开发机器上)和WERKZEUG供电交互式调试。 有喜欢的事情扩展HTML表单和数据库ORM 。

  • 瓶子是小如microframework可以得到,由1(一)的文件,开发服务器包括在内。 拖放到你的项目文件夹,并开始入侵。 内置SimpleTemplate模板引擎是可切换的,但开发服务器是比较瓶的flakier。 文档是不完整,并且,在我看来,整个事情是少抛光和方便,因为瓶。

在这两种情况下,你可以使用开发服务器在本地,然后使用部署WSGI,服务器接口的Python web app的两个框架支持。 有许多方法来部署WSGI应用程序,阿帕奇mod_wsgi是流行的一个。

我完全同意瓶去,除非一个依赖(瓶)超过三个(瓶,Jinja2的和WERKZEUG)更好。

(还有许多其他的框架一样,所以等待他们的用户来,并告诉他们,我会建议避免web.py :它的工作原理,但充满了魔力,并且与瓶或瓶是不雅。)



Answer 2:

得到迅速的工作web应用的一种方法是先了解,然后再修改,类似App Engine的“ 留言板 ”的例子。 这有很多运行Web服务器并建立一个数据库服务器(假设你需要持久性)的必要,否则沉闷的为你做了好处。 应用程序引擎还提供了相当灵活的开发环境。 这当然不是唯一的道路要走,我会承认偏向于推荐它,但它是相当低的摩擦。

GCI脚本很难说是过去的事情,虽然这不是什么时尚的年轻人都在做。 CGI有效益,诅咒,暴露更多的原料管道的。 它迫使你了解了很多关于原语(在低层次感)的网络架构,但它也有点大咬一口的咀嚼,如果你有一个立即解决的问题可以通过简单的方法解决。



Answer 3:

看来最蟒蛇Web开发似乎是由框架,这些天来完成。 有几个方面的原因:

  1. 成熟的工具太多了。 Django的已建在用户身份验证,内置的数据库管理,建于会话,建成只是一切ORM,它可以让你无缝支持一对夫妇的数据库。

  2. 内置Web服务器。 像Django和挂架较大的Python框架已经建立的Web服务器。 Django中有一个非常简单的网络服务器python manage.py startserver (简单),这使得它非常容易地创建和调试应用程序。 它是单线程所以丢弃调试器成为是无痛

  3. 庞大的社区。 如果你有一个Django的问题,它会非常迅速地回答了这样的社区是巨大的。

Django的教程将介绍发展的所有主要方面。 只有4页,你将能够得到您的应用程序会不必阅读,学习和与Apache设置拨弄简单得多。 https://docs.djangoproject.com/en/dev/intro/tutorial01/

虽然现在Django的可能是矫枉过正,如果您的应用程序只是将是1种形式和脚本来处理它。 由于它的无缝测试框架的这是很容易生长的任何项目。 我从来没有使用烧瓶或瓶或其他microframeworks,但我会记住您的项目将在未来。

至于Django在何处适合这一点,它是一个完整的堆栈框架包含演示(模板),数据管理(服务器ORM),认证,中间件,形式......要创造一个完全包容性的Web应用程序的一切。 Django和几乎所有其他Python框架实现WSGI标准。 这是一个接口,它允许Web服务器之间的互操作。 http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface它是干的漂亮,你将永远不会有直接连接它。 这就是这些框架的引擎盖下做的。



Answer 4:

为什么要建立和维护自己的网络服务器,如果你可以使用App Engine。 它有测试代码一个很好的SDK。 下面是一个例子https://developers.google.com/appengine/docs/python/gettingstarted/handlingforms

和Django的,你会发现,这里: https://developers.google.com/appengine/docs/python/gettingstarted/templates我更喜欢使用神社的模板。



Answer 5:

Django自带了它自己的服务器,但在你的情况,因为它似乎是你正在构建一个非常简单的网站,我会建议阿帕奇和mod_python。

设置Apache是​​一件轻而易举的事,并在网络上一个简单的搜索应该给你所有你需要的。 你可以找到关于mod_python的详细信息, 在这里读了上一点点,然后符合您需求的教程后,谷歌。



文章来源: My first web app (Python): use CGI, or a framework like Django?