我对Python完全陌生,我想开始使用它构建Web页面(但不是使用Web框架或模板模块)。最低要求是什么?你能建议一个简单的设置吗?
谢谢!
编辑:我不想不惜一切代价成为极简主义者。我正在寻找的是一种简单、通用的解决方案,它与语言保持一致(并且不会强加设计范式,例如MVC)。
发布于 2011-07-07 14:08:40
我顺其自然,我建议使用轻量级框架。
首先,web应用将你的服务器暴露在安全风险中,所以最好使用由或多或少的大型开发人员社区维护的东西(更多的眼球来修复漏洞)。
此外,如果您想“紧跟语言”,您需要某种抽象层来以pythonic方式管理HTTP。Python包含了所有关于高电平电池的东西。
其中一些框架非常接近python的语法、语义和风格。以webpy为例。我认为这句话道出了webpy背后的很多理念:
"Django让你用Django编写web应用程序。TurboGears让你用TurboGears编写web应用程序。Web.py让你用Python语言编写web应用程序。“-- Adam Atlas
在简洁性和“常规”python的使用方面,另一个很好的候选者是cherrypy。来自他们的网站:
Python允许开发人员构建web应用程序,其构建方式与构建任何其他面向对象的
程序的方式非常相似。..。您的powered应用程序实际上是独立的CherryPy应用程序,其中嵌入了自己的多线程web服务器。您可以将它们部署到可以运行Python应用程序的任何位置。
发布于 2011-07-07 14:28:10
干净的WSGI应用程序,没有成熟的框架:
from wsgiref.simple_server import make_server
def application(environ, start_response):
# Sorting and stringifying the environment key, value pairs
response_body = ['%s: %s' % (key, value)
for key, value in sorted(environ.items())]
response_body = '\n'.join(response_body)
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', str(len(response_body)))]
start_response(status, response_headers)
return [response_body]
# Instantiate the WSGI server.
# It will receive the request, pass it to the application
# and send the application's response to the client
httpd = make_server(
'localhost', # The host name.
8051, # A port number where to wait for the request.
application # Our application object name, in this case a function.
)
# Wait for a single request, serve it and quit.
httpd.handle_request()然后你可以使用nginx:http://wiki.nginx.org/NgxWSGIModule
这是最稳定、最安全、最基本的设置。
更多示例请访问:https://bitbucket.org/lifeeth/mod_wsgi/src/6975f0ec7eeb/examples/。
这是最好的学习方法(如你所问)。我已经走过这条路了。
发布于 2011-07-07 14:17:00
如果你真的想要做到这一点,至少你需要了解WSGI,这是Python和web服务器之间的粘合剂。您可以直接在此基础上构建Python web应用程序。
但是,像其他回答者一样,我真的鼓励您使用框架。它们并不都是像Django这样的巨大的单块的东西--比如像Flask这样的微框架。他们会处理一些显而易见的事情,比如将URL请求路由到正确的代码。
https://stackoverflow.com/questions/6606431
复制相似问题