2013-08-16 82 views
5

我正在構建一個簡單的Python web應用程序,我希望它像SABNZBD或Couch Patato一樣獨立運行。這些應用程序是獨立的Web應用程序。這些產品用於提供Web界面的是什麼?構建基於python web應用程序的選項

im建築應用程序將對圖像相冊(文件夾)進行查找,並在選中時以幻燈片方式呈現。所有信息都在XML文件中,因此不需要數據庫。 我的目標是儘可能使應用程序儘可能自包含。

我看過Django,它看起來有點令人生畏和矯枉過正,對我的應用程序來說,我的其他選項是什麼。

謝謝達雷爾。

+0

相關:http://wiki.python.org/moin/WebFrameworks – jfs

+0

你確定你想要一個web應用程序?聽起來你正在創建一個桌面應用程序,Python與許多GUI工具包兼容。它與[tk](http://docs.python.org/2/library/tk.html)捆綁在一起,並與[GTK](http://www.pygtk.org/),[qt]( http://www.riverbankcomputing.co.uk/software/pyqt/)和[wx](http://www.wxpython.org/)。 此外,像[camelot](http://www.python-camelot.com/)這樣的工具包使快速應用程序原型設計變得非常簡單。 –

+0

我希望應用程序能夠跨平臺,並且它的想法是它也可以在移動設備上運行。 – DeChinees

回答

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

我會試試這個。感謝所有的提示。 – DeChinees

+0

+500 ......... :) –

+0

是的謝謝:)。 –

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) 
+1

從我所聽到的,也應該可以在任何WSGI處理程序(例如Apache)下安裝瓶子應用程序。因此,您應該能夠使用筆記本電腦上的單個Bottle文件(使用自己的內置HTTP服務器代碼獨立運行它)將應用程序原型化,然後將其部署到您的「真實」服務器中。特別適用於小型內部實用應用。 –

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年在我所有的web應用powerful.I。

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:一個快速,簡單,重量輕微WSGI的Python網絡框架。它作爲一個單獨的文件模塊分發,除了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:瓶是基於WERKZEUG,神社2和良好的願望爲Python一microframework 。

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() 
相關問題