基于Python的Web应用程序构建选项

5
我正在构建一个简单的Python Web应用程序,希望使它像SABNZBD或Couch Patato一样独立运行。这些应用程序是自包含的Web应用程序。这些产品使用什么来提供Web界面?
我正在构建的应用程序将查找图像专辑(文件夹),并在选择后以幻灯片方式呈现。所有信息都在XML文件中,因此不需要数据库。我的目标是尽可能地使应用程序自包含。
我已经看过Django,但对于我的应用程序来说,它似乎有点令人生畏和过度设计了,那么除此之外还有哪些选择呢?
谢谢Darrell。

相关:http://wiki.python.org/moin/WebFrameworks - jfs
你确定要一个Web应用程序吗?听起来像是你正在创建一个桌面应用程序,而Python与许多GUI工具包兼容。它捆绑了tk,并且与GTKqtwx兼容。此外,像camelot这样的工具包使快速应用程序原型设计变得非常容易。 - Burhan Khalid
我希望这个应用程序是跨平台的,而且它应该能在移动设备上运行。 - DeChinees
5个回答

11

你为什么不在Python中使用Flask

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

from flask import Flask
app = Flask(__name__)

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

if __name__ == "__main__":
    app.run()

我会尝试这个。谢谢所有的建议。 - DeChinees

10

有许多选项,它们都很容易在几天内掌握。你选择哪一个完全取决于你。

以下是一些值得一提的:

飓风:一个Python网络框架和异步网络库,最初由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()

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)

1
据我所知,将瓶装应用程序挂载在任何WSGI处理程序(如Apache)下也是可能的。因此,您应该能够使用单个Bottle文件在笔记本电脑上原型化应用程序(使用其自己内置的HTTP服务器代码独立运行),然后将其部署到您的“真实”服务器上。对于小型内部实用程序特别方便。 - Jim Dennis

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()

2

查看Cherrypy

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

这个工具非常简单而且强大,我在所有的Web应用程序中都使用它已经3年了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接