我需要创建一个简单的网站,服务器将在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 servers,gevent和mod_wsgi在内存占用率低的情况下表现出色。他们并不认为自己是Web框架,它们与像cherrypy,web2py这样的Web框架有什么区别。
由于
答案 0 :(得分:2)
取决于您的网站 - 如果您只需要静态内容,则可以使用静态网站生成器(Blogofile,Hyde来命名一些用Python编写的内容),或者,如果您的网站提供服务动态内容,你应该使用某种框架(Flask,Django等)。使用静态站点生成器,服务器上只需要为您的内容提供服务的Web服务器,但对于动态站点,您可能需要额外的库来处理各种事物,如数据库支持,缓存等。
内置网络服务器通常用于本地开发,通常不适合生产使用。对于后者使用特定的应用程序,如mod_wsgi(对于Apache)或uwsgi(对于Nginx)。但是尽量避免使用mod_python!
WSGI代表Web服务器网关接口,是Web服务器和Web应用程序(或框架)之间使用的标准协议。 WSGI似乎是目前唯一的标准选择,所以请继续使用它。
另外,根据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)
答案 3 :(得分:0)
这不是一个编程问题,因为你真的只是问如何开始进行网页开发,而且没有明确的答案。
我可以热烈推荐开始使用Django,因为它有很好的文档记录并且有很棒的教程。它还使用Python,这意味着更容易理解其他人的代码。
无论您选择Django还是其他东西,只需选择一个Web应用程序开发教程并运行它。谷歌为一个(对于Django,你可以在非常有用的#django IRC频道上询问)。这应该为您提供一个良好的基础,至少有一个您理解的工作示例,以及一个运行的Web应用程序的不同部分以及它们如何协同工作的清晰图像。
之后,您可以分支并学习许多各种相关技能和技术,最好是根据您的需求驱动您开发自己的实际Web应用程序(即使只是为了学习目的)。
祝你好运!