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

问题描述 投票:0回答:5

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

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

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

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

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

3
投票

你可以尝试一些更简单的东西,比如Bottle,它只是一个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)

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

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

© www.soinside.com 2019 - 2024. All rights reserved.