我正在构建一个简单的 Python Web 应用程序,我希望它像 SABNZBD 或 Couch Patato 一样独立运行。这些应用程序是自包含的 Web 应用程序。这些产品使用什么来提供 Web 界面?
即时构建的应用程序将查找图像专辑(文件夹),并在选择时以幻灯片放映的方式呈现。所有信息都在 XML 文件中,因此不需要数据库。我的目标是使应用程序尽可能自包含。
我看过 Django,它看起来对我的应用程序来说有点令人生畏和矫枉过正,我还有什么其他选择。
谢谢达雷尔。
你为什么不在python中使用烧瓶?
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
有很多选择,而且在几天之内都很容易上手。您选择哪一个完全取决于您。
这里有几个值得一提的:
Tornado:一个 Python Web 框架和异步网络库,最初在 FriendFeed 开发。
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
Bottle:一个快速、简单、轻量级的 Python WSGI 微型 web 框架。它作为单个文件模块分发,除了 Python 标准库之外没有其他依赖项。
from bottle import route, run, template
@route('/hello/<name>')
def index(name='World'):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
CherryPy:一个极简主义的 Python Web 框架
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
Flask:Flask 是基于 Werkzeug、Jinja 2 和善意的 Python 微框架。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
web.py:是一个 Python 的 Web 框架,既简单又强大。
import web
urls = (
'/(.*)', 'hello'
)
app = web.application(urls, globals())
class hello:
def GET(self, name):
if not name:
name = 'World'
return 'Hello, ' + name + '!'
if __name__ == "__main__":
app.run()
你可以尝试一些更简单的东西,比如Bottle,它只是一个 python 文件,并为你提供了大部分的 web 处理,而没有不必要的复杂性:
from bottle import route, run, template
@route('/hello/<name>')
def index(name='World'):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
您可能想查看web.py。这是 Hello World 示例
import web
urls = (
'/', 'index'
)
class index:
def GET(self):
return "Hello, world!"
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
签出Cherrypy:
import cherrypy
class HelloWorld(object):
@cherrypy.expose()
def index(self):
return "Hello World!"
cherrypy.quickstart(HelloWorld())
这是如此简单和强大。我在我的所有 Web 应用程序中使用了 3 年。