Python:如何在没有庞大框架的情况下创建简单的网页?

时间:2012-04-02 15:38:03

标签: python frameworks web-frameworks

我想知道是否有办法在python中创建没有庞大框架的网页。

我想像PHP / Apache这样的东西,它只是作为一种语言,并没有太大的开销(但我不喜欢PHP ......)。在PHP中没有ORM,没有模板引擎等。但是只需将Hello World打印到浏览器即可。

我知道Django并且非常喜欢它,但它对于简单的门户网站来说有点太大了(5-10页)。

我真的很喜欢简单的东西,而不是安装太多。

8 个答案:

答案 0 :(得分:6)

你有没有抬头Flask

这是一个更简约的框架,非常容易设置和开始。

答案 1 :(得分:4)

我过去曾使用过Flask(和bottle.py),但这些天我实际上更喜欢Pyramid, from the Pylons folks

Pyramid能够成为一个庞大的,成熟的框架,专为灵活性而设计,并且不乏插件和扩展,可以添加额外的功能 - 但它也能够实现小型的单文件项目;见this tutorial for an example

如果您的需求随着时间的推移而增长,那么随着金字塔的出现将为您提供成长空间,同时仍然保持从小规模开始的能力。

答案 2 :(得分:2)

良好的旧CGI是让您入门的最快捷方式。在大多数配置中,您只需要在'cgi-bin'中删除python脚本并使其可执行,无需安装任何东西。谷歌的“cgi python”,有很多教程,例如this one看起来很不错。

答案 3 :(得分:1)

我不确定django flatpages出于何种目的而错误。

另一个替代方案是用更强大的东西替换django模板系统,比如jinja,这样你就可以编写标签汤并在那里进行处理,视图中的逻辑很少。

在实践中(假设您已经知道django),这可能比使用微框架更容易(这需要更多的程序员,以换取对任何事情完全不受任何影响)。

答案 4 :(得分:0)

或许

mod_python

答案 5 :(得分:0)

我建议CherryPy

import cherrypy
class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

答案 6 :(得分:0)

当然,您可以非常依赖CGI或wsgiref路线。但是,你得到的是你付出的代价,我更喜欢FlaskWerkZeug来预防他们所有的痛苦。

来自wsgiref python docs

from wsgiref.simple_server import make_server

def hello_world_app(environ, start_response):
    status = '200 OK' # HTTP Status
    headers = [('Content-type', 'text/plain')] # HTTP Headers
    start_response(status, headers)
    return ["Hello World"]

httpd = make_server('', 8000, hello_world_app)
print "Serving on port 8000..."

# Serve until process is killed
httpd.serve_forever()

答案 7 :(得分:0)

Python使用CGI很好。

这是你能做的最简单的事情:它只需要apache和一个工作的python环境,并且最接近标准的php设置。

请记住,在使用CGI时,你的python脚本负责输出必要的HTTP头文件(sys.stdout.write('Content-Type: text/html\n\n')),但有一个CGI模块是python标准库的一部分,它有助于处理原始文件stuffs(post / get arguments parsing,header retrieval,header generation)。