我想知道是否有办法在python中创建没有庞大框架的网页。
我想像PHP / Apache这样的东西,它只是作为一种语言,并没有太大的开销(但我不喜欢PHP ......)。在PHP中没有ORM,没有模板引擎等。但是只需将Hello World
打印到浏览器即可。
我知道Django并且非常喜欢它,但它对于简单的门户网站来说有点太大了(5-10页)。
我真的很喜欢简单的东西,而不是安装太多。
答案 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)
答案 5 :(得分:0)
我建议CherryPy
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
答案 6 :(得分:0)
当然,您可以非常依赖CGI或wsgiref
路线。但是,你得到的是你付出的代价,我更喜欢Flask或WerkZeug来预防他们所有的痛苦。
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)。