5

我正在构建一个简单的 Python Web 应用程序,我希望它像 SABNZBD 或 Couch Patato 一样独立运行。这些应用程序是自包含的 Web 应用程序。这些产品使用什么来提供 Web 界面?

即时构建的应用程序将查找图像专辑(文件夹),并在选择时以幻灯片放映的方式呈现。所有信息都在 XML 文件中,因此不需要数据库。我的目标是使应用程序尽可能自包含。

我看过 Django,它看起来对我的应用程序来说有点令人生畏和矫枉过正,我还有什么其他选择。

谢谢达雷尔。

4

5 回答 5

11

你为什么不在python中使用烧瓶?

看看这个 http://flask.pocoo.org/

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
于 2013-08-16T10:21:18.067 回答
10

有很多选择,而且在几天之内都很容易上手。您选择哪一个完全取决于您。

这里有几个值得一提的:

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()
于 2013-08-16T11:01:31.953 回答
3

你可以尝试一些更简单的东西,比如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)
于 2013-08-16T09:56:26.483 回答
2

您可能想查看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()
于 2013-08-16T10:37:49.240 回答
2

签出Cherrypy

import cherrypy
class HelloWorld(object):
    @cherrypy.expose()
    def index(self):
        return "Hello World!"
cherrypy.quickstart(HelloWorld())

这是如此简单和强大。我在我的所有 Web 应用程序中使用了 3 年。

于 2013-08-16T10:49:26.880 回答