python网站开发

时间:2011-11-04 23:21:00

标签: python frameworks web wsgi

我需要创建一个简单的网站,服务器将在Amazon EC2 Web服务上运行。但我之前没有做过web开发。看起来我需要学习很多东西,javascript,html,css,web框架,WSGI,apache web服务器等等。我对一些似乎大致相同的东西感到困惑。

所以第一个问题,任何人都可以告诉我到底需要什么来设置网站。 Web框架是我在服务器端唯一需要的东西吗?

第二个问题,我将在服务器端使用python,实际上有一堆用于python的web框架。 apache http服务器与这些Web框架中的内置wsgi或http Web服务器之间有什么区别。

第3个问题,WSGI是最佳选择吗?大多数Web框架都支持WSGI,是否意味着WSGI是在Web框架中构建的?或者我需要包含mod_wsgi或类似的东西。

此外,根据this benchmark of python WSGI serversgevent和mod_wsgi在内存占用率低的情况下表现出色。他们并不认为自己是Web框架,它们与像cherrypy,web2py这样的Web框架有什么区别。

由于

4 个答案:

答案 0 :(得分:2)

  1. 取决于您的网站 - 如果您只需要静态内容,则可以使用静态网站生成器(BlogofileHyde来命名一些用Python编写的内容),或者,如果您的网站提供服务动态内容,你应该使用某种框架(Flask,Django等)。使用静态站点生成器,服务器上只需要为您的内容提供服务的Web服务器,但对于动态站点,您可能需要额外的库来处理各种事物,如数据库支持,缓存等。

  2. 内置网络服务器通常用于本地开发,通常不适合生产使用。对于后者使用特定的应用程序,如mod_wsgi(对于Apache)或uwsgi(对于Nginx)。但是尽量避免使用mod_python!

  3. WSGI代表Web服务器网关接口,是Web服务器和Web应用程序(或框架)之间使用的标准协议。 WSGI似乎是目前唯一的标准选择,所以请继续使用它。

  4.   

    另外,根据python WSGI服务器的基准测试,gevent和   mod_wsgi在内存占用率低的情况下表现出色。他们没有   自称为Web框架,它们之间有什么区别   和网络框架,如cherrypy,web2py。

    如前所述,WSGI只是Web服务器与Web应用程序通信的一种方式。 CherryPy和web2py处理模板,请求和会话处理,并通过WSGI将此信息输出到Web服务器。

    如果你担心速度,那么不要太担心.. :)

答案 1 :(得分:1)

WSGI是一个接口。它需要一个容器(例如mod_wsgi),一个应用程序(例如Django)和可选的中间件。应用程序可以直接针对WSGI构建,也可以构建在Django等框架之上,为您处理WSGI位。

不要在框架中使用内置Web服务器。它们通常不是为性能而设计的,它们通常不能很好地与服务器的非WSGI部分集成。

答案 2 :(得分:0)

  1. 您将需要Web服务器,Apache是​​一个受欢迎的选择。您可能还需要安装数据库,MySQL是免费的,简单且流行的。

  2. 最受欢迎(在我看来最好的)python框架是Django

  3. 许多人使用mod_wsgi使用apache运行Django。框架通常只提供不适合作为真实服务器的开发服务器。

  4. WSGI服务器可能只提供编写代码的请求处理和入口点,但框架提供了更多(用户处理,管理界面,ORM,模板等......)。

答案 3 :(得分:0)

这不是一个编程问题,因为你真的只是问如何开始进行网页开发,而且没有明确的答案。

我可以热烈推荐开始使用Django,因为它有很好的文档记录并且有很棒的教程。它还使用Python,这意味着更容易理解其他人的代码。

无论您选择Django还是其他东西,只需选择一个Web应用程序开发教程并运行它。谷歌为一个(对于Django,你可以在非常有用的#django IRC频道上询问)。这应该为您提供一个良好的基础,至少有一个您理解的工作示例,以及一个运行的Web应用程序的不同部分以及它们如何协同工作的清晰图像。

之后,您可以分支并学习许多各种相关技能和技术,最好是根据您的需求驱动您开发自己的实际Web应用程序(即使只是为了学习目的)。

祝你好运!