【问题标题】:python website development [closed]python网站开发[关闭]
【发布时间】:2011-12-22 10:38:37
【问题描述】:

我需要创建一个简单的网站,服务器将在 Amazon 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 或类似的东西。

另外,根据this benchmark of python WSGI serversgevent 和 mod_wsgi 显示出出色的性能和低内存占用。他们不声称自己是 web 框架,它们和像cherrypy、web2py 这样的 web 框架有什么区别。

谢谢

【问题讨论】:

    标签: python frameworks web wsgi


    【解决方案1】:

    这并不完全是一个编程问题,因为您实际上只是在问如何开始 Web 开发,而对此没有明确的答案。

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

    不管你选择 Django 还是其他,只要选择一个 web 应用程序开发教程并运行一遍即可。 Google for one(对于 Django,您可以在非常有帮助的#django IRC 频道上提问)。这应该为您提供一个良好的基础,其中至少有一个您理解的工作示例,以及一个正在运行的 Web 应用程序的不同部分是什么以及它们如何协同工作的清晰图景。

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

    祝你好运!

    【讨论】:

      【解决方案2】:
      1. 您将需要 Web 服务器,Apache 是一种流行的选择。您可能还需要安装数据库,MySQL 是免费、简单且流行的。

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

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

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

        李>

      【讨论】:

      • 没有人应该使用 mod_python 运行任何东西。它已正式弃用。
      • 感谢指正,意思是 mod_wsgi。
      • @Lycha 谢谢。 django看起来太复杂了,其实我不需要强大的数据库支持,服务器只需要维护用户的信息,目前还需要一个锁表。数据将存储在亚马逊 S3 中。
      【解决方案3】:
      1. 取决于您的网站 - 如果您只需要静态内容,您可以使用静态网站生成器(BlogofileHyde 仅举几例用 Python 编写的),或者,如果您的网站提供动态内容,您可以使用应该使用某种框架(Flask、Django 等)。使用静态站点生成器,您在服务器上只需要为您的内容提供服务的网络服务器,但对于动态站点,您可能需要额外的库来支持数据库、缓存等各种事情。

      2. 内置网络服务器通常用于本地开发,通常不适合生产使用。对于后者,请改用 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 服务器。

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

      【讨论】:

      • 谢谢。该网站需要提供动态内容。如果我没看错的话,框架是用来开发web应用的,而mod_wsgi是在服务器中用来在应用程序和服务器之间进行通信的,对吧?
      • 是的,虽然 mod_wsgi 只是 Apache 特定的。
      【解决方案4】:

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

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

      【讨论】:

      • @lgnacio 所以我需要一个 Web 服务器、一个数据库和服务器端的 mod_wsgi。对于在客户端开发应用程序,一个框架就足够了。对吗?
      • 数据库是可选的,除非您正在开发面向数据库的应用程序。如果框架有一个内置的网络服务器,那么它可能就足够了,但是您可能需要查看一个单独的 WSGI 容器。
      猜你喜欢
      • 2022-01-23
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多