Python网站开发



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

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

第二个问题,我将在服务器端使用python,有很多关于python的web框架。apache http服务器与这些web框架中内置的wsgi或http web服务器有什么区别?

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

另外,根据python WSGI服务器的这个基准测试,gevent和mod_wsgi在低内存占用的情况下表现出了很好的性能。他们不宣称自己是web框架,他们和像cherryypy, web2py这样的web框架有什么区别?

谢谢

  1. 取决于你的网站-如果你只需要静态内容,你可以使用静态网站生成器(Blogofile, Hyde等),或者,如果你的网站提供动态内容,你应该使用某种框架(Flask, Django等)。使用静态站点生成器,服务器上所需要的只是为您的内容提供服务的web服务器,但是使用动态站点,您可能需要额外的库来支持数据库,缓存等。

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

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

同样,根据python WSGI服务器的这个基准测试,gevent和Mod_wsgi在低内存占用下表现出出色的性能。他们不声称自己是web框架,它们之间的区别是什么还有cherrypy、web2py等网络框架。

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

如果你担心速度,那就不要太担心了。:)

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

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

  1. 您将需要web服务器,Apache是一个流行的选择。你可能还需要安装数据库,MySQL是免费的,简单和流行的。

  2. 在我看来最流行的(也是最好的)python框架是Django。

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

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

这不是一个真正的编程问题,因为你实际上只是在问如何开始web开发,并且没有明确的答案。

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

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

之后,你可以分支并学习许多相关的技能和技术,最好是在你开发自己的实际web应用程序时由你的需求驱动(即使一开始只是为了学习目的)。

祝你好运!

最新更新