2014-02-15 46 views
3

我正在開發一個需要web前端的應用程序。我所關心的只是適用於iOS的HTTP接口,與Android應用程序交流。後端將使用MongoDB。在沒有Django或任何框架的python中編寫webapps

我需要使用Python框架嗎?我看到Django想爲我生成DB接口。從粗略閱讀的Django教程中,我不清楚爲什麼我必須使用它所帶來的所有「應用程序」,如admin,auth等。我沒有看到在Django中禁用數據庫接口的方法。

當我之前編寫php代碼時,我所需要的只是php apache模塊,並且我可以從自己處理的所有內容的PHP代碼中訪問HTTP標頭。我可以不用python做那樣的事嗎?爲什麼人們使用框架?

+0

可能有太多的答案,或者對於這種格式來說答案太好。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。 – jonrsharpe

+1

查看WSGI,並在Python文檔中搜索HTTP。你如何看待框架? – OregonTrail

+3

框架只是爲了更容易使用其他笨拙的WSGI模塊。嘗試像Flask這樣的輕量級框架。 – jdotjdot

回答

5

您可以嘗試使用Flask這個輕量級的Web框架,它可以幫助您製作簡單的前端。簡單的視圖的例子可以在框架的網站上找到:

@app.route('/login', methods=['GET', 'POST']) 
def login(): 
    if request.method == 'POST': 
     do_the_login() 
    else: 
     show_the_login_form() 

有了瓶,你必須在默認情況下有Django的(管理,AUTH ...)沒有不必要的模塊,這樣你就可以專注於自己的數據庫管理。


如果你想要一個尊重你的問題的答案,是的,你可以在沒有框架的Python中創建一個網站。 WSGI可能會幫助你,但會更困難。

+0

這正是我所尋找的,我的搜索也導致了Flask。我很快意識到WSGI apache模塊不會給我諸如url管理,cookies,模板等的好東西,而Flask正是我所需要的。現在編寫一些代碼,它看起來簡單直接。 – user220201

3

編輯:

一篇好文章關於Using Django for (mostly) static sites


ORIGINAL:

你在你的問題中提到的Django,所以我打算遵循這一行感興趣。並不是說沒有其他的框架可以很好地完成工作,但正如已經評論的那樣,沒有關於您的特定用例的更多細節,這很難變得非常有建設性。

沒有任何框架,意味着直接與WSGI合作。這意味着手動指定HTTP標頭,以及所有爵士樂......我會看看一個框架。 http://wsgi.readthedocs.org/en/latest/frameworks.html


Django決不依賴於數據庫。當然,它有很多內置的好東西,可以很容易地與數據庫一起工作,但它確實沒有必要。

只需從INSTALLED_APPS刪除任何應用程序,並從urls.py中刪除url(r'^admin/'...。就是這樣,現在你可以創建你的視圖和(可選)模板,不受數據庫阻礙:)
注意:並非所有的應用程序都需要數據庫,例如。 django.contrib.staticfiles。

一個簡單的圖(The Docs拍攝):

from django.http import HttpResponse 
import datetime 

def current_datetime(request): 
    now = datetime.datetime.now() 
    html = "<html><body>It is now %s.</body></html>" % now 
    return HttpResponse(html) 

這條線urls.py將一個URL鏈接到它:

url(r'^$', 'testapp.views.current_datetime'), # on domain root 
or 
url(r'^da-time/?$', 'testapp.views.current_datetime'), # on domain.com/da-time/ 

您可以使用python manage.py runserver運行測試服務器。

確實,你沒有使用ORM,IMHO是Django最好的部分,但我仍然認爲這可能是值得的,特別是如果你熟悉它或計劃成爲。而且,你也不是在寫response_headers = [('Content-type', 'text/plain')],這可能是一件好事。當然,手動指定標題,重定向等僅僅是一行或兩行代碼。

+0

@fmhr - 感謝您的詳細回覆。 Django對我來說顯得過於複雜。所有這些命令和默認模塊完全拋棄了我。在閱讀完這篇教程之後,我不明白Django是如何工作的,我的意思是,該教程不是解釋Django的膽量/哲學,而只是一個虛擬的方法。此外,我意識到我將花費大量時間去除我不需要的東西。但我想學習它,因此嘗試。它不適合這個項目。 – user220201

相關問題