接觸django
有一段時間了,發現國內網站上的django
學習資料,雖然有很多,但大多有老舊的通病,所基於的版本簡直是太舊了,就拿《the django book》
來講,這本書應該是不少人接觸django
的第一本教程了,但是竟然是基於1.1版本的……要知道,如今已經出了1.9版本的django了,這中間差了多少?前端
教程版本落後,在實戰學習中每每會出現不少兼容性問題,筆者當時就吃了很多這方面的虧,學習1.1的教程,拿1.8的版原本實踐,可想而知,得有多少坑……沒辦法,誰讓國內django方面的實戰案例教程如百裏挑一呢?最後,只能拿來1.8版本的api文檔啃英文了。python
鑑於以上,筆者想寫一系列實戰教程,針對最新的django版本,與你們分享,爲新手們學習django提供捷徑,同時鞏固我的知識體系,若有筆誤,歡迎大神們指點一二。數據庫
在這個實戰項目裏,咱們會從頭開始,一步步搭建一個完整的blog站點。從開發環境到生產環境的發佈,會分紅幾部分文章來完成。django
請注意,此爲實戰項目教程,不會從頭講基礎的django知識。建議有必定的django基礎後再閱讀該系列文章。bootstrap
該實戰項目主要包含如下幾個部分:api
安裝django
,搭建隔離的開發環境框架
建立工程及數據庫基本配置python2.7
建立blog
應用並對其創建模型學習
搭建blog
站點的後臺管理系統admin
網站
利用bootstrap
框架和django
的模板及視圖系統構建前端基本頁面
增長分頁
實現發送郵件功能
建立表單及其處理
建立基於模型的表單
集成第三方應用
構建複雜的查詢集
建立自定義模板標籤
建立自定義模板過濾器
添加站點地圖sitemap
添加訂閱
利用Solr
和Haystack
創建站內搜索引擎
本項目要用到的軟件及版本以下
python==2.7+
django==1.8.6
virtualenv==13.1.2
下面我們正式開始進行blog項目的開發。
開發項目的第一點,也是首要的,就是創建一個隔離的開發環境,避免污染本機系統,同時保證不一樣版本的控制與隔離。其重要性,這裏再也不贅述,之後會單獨寫一篇文章具體講述,以及如何使用virtualenv
。
lwj@macpro:~$ mkdir myproject lwj@macpro:~$ cd myproject/
myproject
中,創建獨立的python運行環境lwj@macpro:~/myproject$ virtualenv --no-site-packages venv New python executable in venv/bin/python Installing setuptools, pip, wheel...done. lwj@macpro:~/myproject$ ls venv/ lwj@macpro:~/myproject$ cd venv lwj@macpro:~/myproject/venv$ ls bin/ include/ lib/ lwj@macpro:~/myproject/venv$
命令virtualenv venv
就能夠建立一個獨立的Python運行環境venv
,咱們還加上了參數--no-site-packages
,這樣,已經安裝到系統Python環境中的全部第三方包都不會複製過來,這樣,咱們就獲得了一個不帶任何第三方包的「乾淨」的Python運行環境。
可看到在myproject
目錄下生成了一個新的文件夾venv
,裏面包含bin
、include
、lib
三個目錄,即組成了新的、乾淨的、隔離的python運行環境。
運行下面這行命令就能激活上面創建的隔離的python運行環境
lwj@macpro:~/myproject$ source venv/bin/activate (venv)lwj@macpro:~/myproject$
如上所示,在命令行的前面出現(venv)
前綴,即表示咱們剛剛創建的隔離環境venv
已被成功激活。這時全部的操做都是在venv
這個Python獨立的運行環境下,不會受外界系統python環境的影響,也不會影響到外界系統的Python環境。
此時,在此環境下安裝的全部的python包都會被默認安裝到venv/lib/python2.7/site-packages/
目錄下。
【補充】註銷激活,deactivate
便可。
(venv)lwj@macpro:~/myproject$ deactivate
隔離的環境搭建好了,接着就能夠安裝django了。
利用命令pip install Django==1.8.6
,就可安裝指定版本爲1.8.6
的django
了。固然,安裝django的方法有多種,咱們在這裏選擇最方便的一種,直接用pip
安裝。由於在建立venv
隔離環境的時候,已經預裝好了pip
,因此這裏用pip
安裝django
就很方便了,就是一句命令的事兒。之後在該項目中全部用到的python包,咱們都會直接用pip
來安裝。
(venv)lwj@macpro:~/myproject/venv$ pip install Django==1.8.6 Collecting Django==1.8.6 * * *
安裝完成。
在venv/lib/python2.7/site-packages/
目錄下會看到新增長Django-1.8.6.dist-info/
和django/
文件夾。
方法1:pip list
(venv)lwj@macpro:~/myproject/venv$ pip list Django (1.8.6) pip (7.1.2) setuptools (18.2) wheel (0.24.0)
會發現有Django (1.8.6)
,說明已安裝Django
,並且可看出其版本爲1.8.6
。
方法2:import django
打開python
命令終端
(venv)lwj@macpro:~/myproject/venv$ python Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
導入django包,
>>> import django >>> django.VERSION (1, 8, 6, 'final', 0)
成功打印出django
的版本,到此,則表示django
已成功安裝。
後面咱們就能夠開始建立blog工程了……請見下章