Python 网站开发

2 投票
4 回答
1368 浏览
提问于 2025-04-17 05:40

我需要创建一个简单的网站,服务器会在亚马逊的EC2云服务上运行。但是我之前没有做过网页开发。看起来我需要学习很多东西,比如JavaScript、HTML、CSS、网页框架、WSGI、Apache网页服务器等等。而且有些东西看起来很相似,让我有点困惑。

所以第一个问题,有人能告诉我到底需要什么才能搭建这个网站吗?网页框架是我在服务器端唯一需要的吗?

第二个问题,我打算在服务器端使用Python,Python有很多网页框架。Apache HTTP服务器和这些网页框架内置的WSGI或HTTP服务器之间有什么区别呢?

第三个问题,WSGI是最好的选择吗?大多数网页框架都支持WSGI,这是否意味着WSGI已经内置在这些网页框架里?还是说我需要额外安装mod_wsgi或者类似的东西?

另外,根据这个关于Python WSGI服务器的基准测试gevent和mod_wsgi在性能和内存占用上表现都很好。它们并不自称为网页框架,那它们和像cherrypy、web2py这样的网页框架有什么区别呢?

谢谢!

4 个回答

1
  1. 你需要一个网络服务器,Apache是一个很受欢迎的选择。你可能还需要安装数据库,MySQL是免费的,使用起来简单又流行。

  2. 最受欢迎的(我认为也是最好的)Python框架是Django

  3. 很多人用Apache来运行Django,通常会用到mod_wsgi。框架一般只提供开发用的服务器,这种服务器不适合用作真正的服务器。

  4. WSGI服务器可能只提供请求处理和代码的入口点,但框架提供的功能要多得多(比如用户管理、管理界面、对象关系映射、模板处理等等)。

1

WSGI 是一个接口。它需要一个容器(比如 mod_wsgi)、一个应用程序(比如 Django),还有可选的中间件。应用程序可以直接基于 WSGI 来构建,或者可以在像 Django 这样的框架上构建,这些框架会帮你处理 WSGI 的部分。

不要使用框架内置的网络服务器。它们通常不是为了性能而设计的,而且通常和你服务器中非 WSGI 的部分整合得不好。

2
  1. 这要看你的网站需求。如果你的网站只需要展示一些静态内容,可以使用静态网站生成器,比如用Python写的BlogofileHyde等。如果你的网站需要动态内容,那就得用一些框架,比如Flask、Django等。使用静态网站生成器时,服务器上只需要一个能提供内容的网页服务器;而动态网站可能还需要额外的库来支持数据库、缓存等功能。

  2. 内置的网页服务器通常是为了本地开发而设计的,一般不适合用于生产环境。如果要在生产环境中使用,建议用专门的应用,比如Apache的mod_wsgi或Nginx的uwsgi。不过,尽量避免使用mod_python!

  3. WSGI是“网页服务器网关接口”的缩写,是网页服务器和网页应用(或框架)之间的标准协议。目前WSGI似乎是唯一的标准选择,所以可以放心使用。

另外,根据对Python WSGI服务器的基准测试,gevent和mod_wsgi在性能上表现出色,同时内存占用也很低。它们并不自称为网页框架,那它们和像CherryPy、web2py这样的网页框架有什么区别呢?

如前所述,WSGI只是网页服务器与网页应用之间沟通的一种方式。CherryPy和web2py负责处理模板、请求和会话,并通过WSGI将这些信息传递给网页服务器。

如果你担心速度问题,其实不用太过担心.. :)

撰写回答