2013-08-16 25 views
5

Tôi đang xây dựng một ứng dụng web Python đơn giản và tôi muốn nó chạy độc lập như SABNZBD hoặc Couch Patato. Các ứng dụng này là các ứng dụng web tự chứa. Những sản phẩm này sử dụng để phục vụ giao diện web?Tùy chọn để xây dựng ứng dụng dựa trên web python

Việc xây dựng ứng dụng im sẽ thực hiện tra cứu các album ảnh (thư mục) và khi được chọn, trình bày nó một cách trình chiếu. Tất cả thông tin đều nằm trong một tệp XML, vì vậy không có cơ sở dữ liệu cần thiết. Mục tiêu của tôi là làm cho ứng dụng trở nên độc lập nhất có thể.

Tôi đã xem Django và có vẻ hơi khó khăn và quá mức cần thiết cho ứng dụng của tôi, các tùy chọn khác của tôi là gì.

Cảm ơn Darrell.

+0

liên quan: http://wiki.python.org/moin/WebFrameworks – jfs

+0

Bạn có chắc chắn muốn có một ứng dụng web không? Có vẻ như bạn đang tạo một ứng dụng máy tính để bàn và Python tương thích với nhiều bộ công cụ GUI. Nó được đóng gói với [tk] (http://docs.python.org/2/library/tk.html) và tương thích với [GTK] (http://www.pygtk.org/), [qt] (http://www.riverbankcomputing.co.uk/software/pyqt/) và [wx] (http://www.wxpython.org/). Ngoài các bộ công cụ như [camelot] (http://www.python-camelot.com/), việc tạo mẫu ứng dụng nhanh chóng khá dễ dàng. –

+0

Tôi muốn ứng dụng là nền tảng chéo và ý tưởng là nó cũng hoạt động trên các thiết bị di động. – DeChinees

Trả lời

11

tại sao bạn không sử dụng bình trong python?

hãy xem này http://flask.pocoo.org/

from flask import Flask 
app = Flask(__name__) 

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

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

Tôi sẽ thử cái này. Cám ơn vì những mẹo hay. – DeChinees

+0

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

+0

có cảm ơn :). –

3

Bạn có thể thử một cái gì đó đơn giản hơn, như Bottle, mà chỉ là một file python và cung cấp cho bạn hầu hết các xử lý web mà không cần sự tinh tế cần thiết:

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

Từ những gì tôi đã nghe nó cũng có thể gắn kết một ứng dụng chai dưới bất kỳ trình xử lý WSGI nào (như Apache). Vì vậy, bạn sẽ có thể thử nghiệm ứng dụng của mình bằng cách sử dụng tệp Chai duy nhất trên máy tính xách tay của bạn (chạy nó độc lập với mã máy chủ HTTP tích hợp của riêng nó) và sau đó triển khai nó tới (các) máy chủ "thực" của bạn. Đặc biệt tiện dụng cho các ứng dụng tiện ích nội bộ nhỏ. –

2

Bạn có thể muốn nhìn vào web.py. Dưới đây là ví dụ 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

Thanh toán các Cherrypy:

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

Đây là đơn giản như vậy và powerful.I sử dụng nó cho 3 năm ở tất cả các webapplications tôi.

10

Có nhiều tùy chọn và tất cả đều rất dễ dàng để nhận trong vài ngày tới. Mà bạn chọn là hoàn toàn tùy thuộc vào bạn.

Dưới đây là một vài đáng nhắc đến:

Tornado: một khuôn khổ web Python và thư viện mạng không đồng bộ, ban đầu được phát triển tại 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: nhanh chóng, đơn giản và nhẹ WSGI vi web khuôn khổ cho Python. Nó được phân phối như một mô-đun tập tin duy nhất và không có phụ thuộc khác với Thư viện chuẩn 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: Một Minimalist Python Web Framework

import cherrypy 
class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.quickstart(HelloWorld()) 



Flask: Flask là một microframework cho Python dựa trên Werkzeug, Jinja 2 và ý định tốt .

from flask import Flask 
app = Flask(__name__) 

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

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



web.py: là một khuôn khổ web cho Python cũng đơn giản vì nó là mạnh mẽ.

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() 
Các vấn đề liên quan