2009-12-06 87 views
6

我想創建一個非常簡單的python web應用程序。我不需要Django或任何其他的網絡框架。是不是有一種更簡單的方法來創建一個在python中的Web應用程序?Python web應用程序

感謝

+2

重複:請在發佈之前搜索「[Python]簡單的網絡應用程序」。有幾百個或更多的答案在這裏你的問題:http://stackoverflow.com/search?q=%5BPython%5D+simple+web+app。例如:http://stackoverflow.com/questions/1641616/python-and-web-development – 2009-12-06 00:46:25

+0

如果你陳述你對django的不喜歡,推薦替代品可能會更容易。 – tosh 2009-12-06 00:47:27

回答

3

WSGI可能是你在找什麼。雖然有幾個輕量級python web frameworks周圍比django不那麼龐大。

5

當然! For example

print 'Content-Type: text/plain' 
print '' 
print 'Hello, world!' 

這是一個Web應用程序 - 如果你把它保存到一個文件中的機器的相應目錄下運行Web服務器並正確設置服務器的配置(根據服務器上);我指出的文章具體說明了如何將此Web應用程序部署到Google App Engine,但任何Web服務器都可以提供CGI應用程序,這是一個簡單的示例。當然,CGI有其侷限性,你可以使用更復雜的方法(仍然缺少一個框架!),如WSGI(也是普遍支持的,如果沒有別的,因爲它可以運行在CGI之上 - 但是在大多數情況下,您也可以使用更高級的方式進行部署),並且可以使用WSGI部署的許多優秀實用程序中的一部分,以節省編碼應用程序某些部分的工作量。

10

如果你不需要的Django,嘗試web.py

http://webpy.org/

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

的真相是,你需要某種類型的框架,即使是極小的。你可以使用WSGI作爲基礎,至少你可以做得更好一些。 Python是一個功能非常強大,非特定的編程語言,所以如果你決定在沒有框架的情況下做到這一點,那麼你將不得不重寫你認爲理所當然的大量代碼。

如果你決定選擇除Django以外的其他產品,請嘗試this list,也許你會發現一些足夠簡單的東西讓你感覺良好。 :)

0

沒錯WSGI ...

def hello_wsgi(environ, start_response): 
    start_response('200 OK', [('content-type', 'text/html')]) 
    return ['Hello world!'] 

如果你想摘要在請求/響應方面得到遠一點從http嘗試webob

from webob import Request, Response 

def hello_wsgi(environ, start_response): 
    request = Request(environ) 
    #do something with the request 
    #return a response 
    return Response("Hello World!")(environ, start_response) 
0

我一直使用bottle作爲最小的web框架。 使用起來非常簡單。

最低限度的例子 - 從網站採取:

from bottle import route, run 

@route('/hello/:name') 
def index(name='World'): 
    return '<b>Hello %s!</b>' % name 

run(host='localhost', port=8080) 

您只需準網址(路由)功能。這個甚至可以得到一個可選的參數。 它有一個可選的光模板語言,你可以根據我們的需要調整它。很強大。

它也很容易安裝 - 因爲它是一個單一的文件,站在你的應用程序,是純粹的兼容python。它也很容易調試,在開發模式下使用modif進行很好的自動重載。

作爲最後的優勢,它可以在pypy下順利運行 - 從而提供比其他框架更快的速度。

0

現在有一段時間,最好使用PhusionPassenger Standalone或者使用與PHP相同的技術,通過代理將其傳遞給FastCGI以應對PHP和WSGI for Python。

的網址和所有的解釋乘客可以發現:Here

有關NGINX運行的Python在FastCGIuWSGIPassenger

關於框架,包裝的Python更容易的Web開發的所有信息我推薦的Django如果它是一個更大的應用程序,並且一旦你掌握了它,Django其實並不難。

祝你好運!

0

您可以試試Appier(https://github.com/hivesolutions/appier)。下面是一個示例應用程序:

import appier 

class HelloApp(appier.App): 

    @appier.route("/", "GET") 
    def hello(self): 
     return "Hello World" 

HelloApp().serve() 

這裏是你如何運行:

pip install appier 
python hello.py 

免責聲明:這個框架是我公司的開源產品組合的一部分。我們建立了框架,使我們的諮詢工作的代碼儘可能簡單和乾淨(以提高我們的效率)。該項目非常活躍,因爲我們一直在使用該框架,但是,需要注意的是,我們最近才公開討論它,所以目前還沒有社區。但是,出於這個原因,我們非常樂意與早期的鳥類開發者密切合作,改進我們的文檔並添加新的功能。