python+django實踐

玩了好久python了,現在才做出一個網站來,說起來很慚愧啊,之前一直以爲python做科學計算比較強大(主要是不喜歡MATLAB),後來才發現原來python也可以做後端。好了,不水了,說下實現過程。

現在網站普遍採用LAMP(自行Google)來做,L指Linux,A指Apache,M指MySQL,P指PHP,當然也可以指Python或Perl。因爲它們都是開源的,故得到了極大的發展,而且還有一種相互兼容性提高的趨勢。我這裏採用阿里雲ECS,Ubuntu系統(LTS 14.04)(阿里雲有個學生專享,9.9元每月,交10個月錢可以用12個月,P.S.我不是做廣告,的),Apache 2.4.7,數據庫是用的python自帶的sqlite3,python 2.7.6,django 1.6.10。

我剛接觸阿里雲的時候,不是特別習慣這種完全無界面的關係,之前本地做的時候,是用eclipse在ubuntu下開發的,界面相當友好,但是阿里雲給的服務器1核CPU,1G內存,我之前試過裝個桌面,用vnc來可視化,但是這速度呵呵,果斷放棄。於是採用putty軟件來使用命令行命令,Xftp5軟件來傳輸文件,功能相當強大。

前端,主要用的是免費網站模板上的一個law office模板,當然也改了尼瑪巨多東西,主要是CSS佈局比較麻煩,我之前寫過,寫的比較醜,週期還長,現在直接就套用了。後端參考設計自強學堂-django,我之前還問過塗老師問題,他還給我回郵件了,雖然沒有起到什麼幫助,但是仍非常感謝。

說下細節部分,前端的話,主要是django模板系統的應用:

1.  用{{}} 包圍變量,如{{news_caption}},這表示把從數據庫裏取出來的變量的值插入到HTML頁面內。

2.  用{% %}包圍的是塊標籤,如{% for news in news_list %}......{% endfor %},顯然變量是有作用範圍的,語法與python一致。

尤其要注意的是模板引擎提供過濾器功能,同樣的對象經過過濾器後,可呈現出不同的狀態,例如時間對象經過過濾器後可呈現不同形態,可以是05/2016,也可以是May.2016. 其次是extends和include的使用,可以代碼複用,提高你的開發效率。然後是圖片的引用,這個困擾了我一段時間,<img src="{{latest.news_photo.url}}">引用圖片。

關於模板系統,可參考django模板系統

後端的話,建立project和app後,主要是在models,views,urls裏面寫程序(僅限於我)。models是建立數據庫,並處理數據庫的內容,由於django採用ORM模式操作數據庫,故我們不需要直接寫SQL語句,直接繼承model類即可。urls負責匹配網址URL,並傳遞到views裏面,views負責處理邏輯,從數據庫中取出數據,並傳給靜態HTML文件。

最後是配置到服務器上,權限很重要,權限很重要,權限很重要,重要的事情說三遍。

如果有興趣請給我發郵件([email protected]),問問題,或者要源碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章