本教程內(nèi)容已過(guò)時(shí)酪惭,更新版教程請(qǐng)?jiān)L問(wèn): Django 博客開(kāi)發(fā)入門教程。
為什么寫這個(gè)教程?
我從去年開(kāi)始接觸 [Python][1],為了能讓學(xué)習(xí) Python 的過(guò)程不那么枯燥江醇,我決定一邊學(xué)習(xí) Python 的同時(shí)一邊利用所學(xué)的東西開(kāi)發(fā)一個(gè)網(wǎng)站。在權(quán)衡了多個(gè) Python 界流行的 Web 框架后何暇,我決定選擇 [django][2]陶夜。
[1]: https://www.python.org/
[2]: https://www.djangoproject.com/
然而 django 在國(guó)內(nèi)的 Web 開(kāi)發(fā)者中使用率其實(shí)并不高(不僅僅是 django,包括其他 Python Web 框架例如 [Flask][3] 等也面臨同樣的境遇)裆站,于是尋找合適的學(xué)習(xí)資料成了一件苦差条辟。在兩個(gè)多月的時(shí)間內(nèi),我閱讀 [The Django Book2.0 中文版][4](其內(nèi)容已經(jīng)嚴(yán)重過(guò)時(shí))宏胯,然后從網(wǎng)上搜到了一個(gè)利用 django 開(kāi)發(fā)一個(gè)簡(jiǎn)單的個(gè)人博客的教程羽嫡,然而其中遇到的各種坑讓我在經(jīng)歷了一個(gè)月的痛苦發(fā)開(kāi)后徹底放棄了 django。django 高質(zhì)量的中文學(xué)習(xí)資料實(shí)在太少了肩袍,而且中文社區(qū)支持也不友好杭棵,新人在開(kāi)發(fā)中遇到問(wèn)題通常求助無(wú)門。
[3]: http://flask.pocoo.org/
[4]: http://djangobook.py3k.cn/2.0/
大概在幾個(gè)月前氛赐,我利用空閑的時(shí)間開(kāi)始學(xué)習(xí) django 的官方文檔魂爪,特別是其[入門教程的 6 個(gè) Parts][5] 循序漸進(jìn),既覆蓋了 django 大部分的核心特性艰管,又對(duì)新人十分友好滓侍,這重新激起了我對(duì) django 的興趣。于是我心血來(lái)潮地在網(wǎng)上發(fā)起了一個(gè)組建 django 五人學(xué)習(xí)小組的活動(dòng)牲芋,很快便得到了大家的響應(yīng)撩笆。我們以互相分享各自所學(xué)的 django 知識(shí)并且利用這些知識(shí)合作開(kāi)發(fā)一個(gè)項(xiàng)目的形式,順利地開(kāi)發(fā)了一個(gè) [django 個(gè)人博客][6]和一個(gè) [django 社區(qū)應(yīng)用][7]缸浦,并且還發(fā)布了一套 [django 博客教程][8]浇衬,但是由于當(dāng)時(shí)自己也是學(xué)習(xí) django 不久,對(duì) django 的掌握程度還很不夠餐济,教程也比較簡(jiǎn)略耘擂,對(duì)想學(xué)習(xí) django 的開(kāi)發(fā)者依然不夠友好。
[5]: https://docs.djangoproject.com/en/1.10/intro/
[6]: http://zmrenwu.com/
[7]: http://www.pythonzh.cn/
[8]: http://www.reibang.com/p/3bf9fb2a7e31
官方文檔的入門教程已經(jīng)非常好了絮姆,但一方面其在語(yǔ)言方面(英語(yǔ)醉冤,在一些國(guó)內(nèi)開(kāi)發(fā)者的貢獻(xiàn)下現(xiàn)在也有了非官方的中文翻譯版本)會(huì)對(duì)國(guó)內(nèi)的一些開(kāi)發(fā)者產(chǎn)生一定的困擾,另一方面它教我們一步步開(kāi)發(fā)一個(gè)簡(jiǎn)單的投票應(yīng)用篙悯,我感覺(jué)這稍稍會(huì)有一點(diǎn)枯燥和不實(shí)用蚁阳。所以我決定編寫這一套教程,帶領(lǐng)想要學(xué)習(xí) django 開(kāi)發(fā)的朋友一步步開(kāi)發(fā)一個(gè)個(gè)人博客鸽照,旨在順便代替 django 官方文檔中的入門教程螺捐,讓開(kāi)發(fā)的過(guò)程更加有趣一點(diǎn),讓開(kāi)發(fā)出來(lái)的東西更加實(shí)用一點(diǎn)。這個(gè)博客已經(jīng)具備個(gè)人博客該有的基本功能定血,我們可以把代碼部署到生產(chǎn)服務(wù)器上開(kāi)始使用赔癌。
誰(shuí)適合這個(gè)教程?
這個(gè)教程的目的是一步步地帶著大家使用 django 開(kāi)發(fā)一個(gè)博客澜沟。我假設(shè)你以前從未接觸過(guò) django 但想成為一名 django 開(kāi)發(fā)者灾票,或者你略微了解過(guò) django 但對(duì)如何使用 django 進(jìn)行開(kāi)發(fā)依然有一些困惑,或者是從其它的 Web 編程框架轉(zhuǎn)過(guò)來(lái)的開(kāi)發(fā)者茫虽。同時(shí)我假設(shè)你已經(jīng)具備以下一些基本條件:
- 了解最基本的 Python 語(yǔ)法刊苍,或者你從未學(xué)習(xí)過(guò) Python 但是有學(xué)習(xí)其他編程語(yǔ)言的經(jīng)歷。
- 了解最基本的 HTML濒析,如果你完全不知道 HTML是個(gè)什么東西正什,建議花費(fèi) 2-3 天時(shí)間學(xué)習(xí)這個(gè)不錯(cuò)的 [HTML 教程][9]。
- (最好具備但不是必須的)HTTP 相關(guān)的基本概念号杏,如果你目前完全沒(méi)有概念也沒(méi)關(guān)系婴氮,我會(huì)在教程中做適當(dāng)講解,但那時(shí)如果你依然不懂馒索,建議花費(fèi)幾天時(shí)間學(xué)習(xí)其基本概念。
[9]: http://www.w3school.com.cn/html/
總之名船,[django 博客教程][10]完全面向新人绰上,教程將帶你一步步地(Step By Step)使用 django 開(kāi)發(fā)一個(gè)博客,教程和官方文檔的入門教程一樣渠驼,涵蓋了 django 開(kāi)發(fā)的大部分核心特性蜈块,并且盡我所能地做到對(duì)新人友好。同時(shí)我也為大家提供了一個(gè)交流的[社區(qū)][7](下面會(huì)介紹)迷扇,以便在開(kāi)發(fā)中遇到問(wèn)題能得到及時(shí)的幫助百揭。
[10]: https://github.com/zmrenwu/django-blog-tutorial
項(xiàng)目預(yù)覽與代碼托管方式
教程最終開(kāi)發(fā)的博客將是這個(gè)樣子:[django 博客教程演示項(xiàng)目][6]
代碼托管在 [GitHub][10],每篇教程的代碼都放在單獨(dú)的分支中蜓席,分支名看起來(lái)像是下面的樣子器一,先后順序我想應(yīng)該很容易識(shí)別:
Step1_build-development-environment
Step2_create-blog-app
互動(dòng)方式
教程以 Step by Step 的形式,一步步帶讀者使用 django 開(kāi)發(fā)一個(gè)博客厨内。通常情況下祈秕,只要你完全依照教程的指導(dǎo),你將順利地完成博客系統(tǒng)的開(kāi)發(fā)雏胃。但盡管如此请毛,由于開(kāi)發(fā)環(huán)境的差異,即使你嚴(yán)格按照教程里的指導(dǎo)瞭亮,依然有可能遇到無(wú)法預(yù)料的異常方仿。如果你個(gè)人無(wú)法解決這些問(wèn)題,你可以通過(guò)以下方式尋求幫助,這可以幫你以最快的速度解決問(wèn)題仙蚜。
-
對(duì)于簡(jiǎn)單的問(wèn)題此洲,請(qǐng)?jiān)谖襕個(gè)人博客][6]的評(píng)論區(qū)留言,每天我都會(huì)查看新的留言并且回復(fù)相關(guān)的問(wèn)題鳍征。
注:由于本教程會(huì)被轉(zhuǎn)載到各大博客平臺(tái)黍翎,不是每個(gè)平臺(tái)下的留言我都會(huì)看到并回復(fù)。因此建議統(tǒng)一到我個(gè)人博客下留言艳丛,或者采用下面的方式匣掸。
(推薦)對(duì)于比較復(fù)雜的問(wèn)題,請(qǐng)到社區(qū)發(fā)帖求助氮双。同樣我也會(huì)每天查看新發(fā)表的帖子碰酝,并且予以回復(fù)。在這里求助的另一個(gè)好處是其他人也能看到你的問(wèn)題戴差,并且給予建議和幫助送爸。社區(qū)地址:http://pythonzh.cn/
版權(quán)聲明
<a rel="license" ></a>本作品采用<a rel="license" >知識(shí)共享署名-非商業(yè)性使用-禁止演繹 3.0 中國(guó)大陸許可協(xié)議</a>進(jìn)行許可。