各位親愛(ài)的小伙伴大家好,我是強(qiáng)子,最近好多小伙伴問(wèn)我django的一些基礎(chǔ)的問(wèn)題,說(shuō)是看文檔有很多地方不理解,其實(shí)django是Python中最簡(jiǎn)單的框架之一,不理解是因?yàn)槲覀儗?duì)它沒(méi)有一個(gè)整體的認(rèn)知,所以今天就做這樣一個(gè)教程,希望能夠幫助小伙伴們解決困惑,如果有疑問(wèn)的也可以加我的Python交流群直接跟我溝通,一起學(xué)習(xí)_
好了,廢話不多說(shuō),接下來(lái)我們就進(jìn)入正題,首先自爆下用到的一些工具
- Python 2.7.12
- Django 1.10.1
- Pycharm 5.0
pycharm是全宇宙唯一一款專門用于Python開(kāi)發(fā)的IDE工具,所以在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)用到它,那么它集成了很多方便的功能,比如創(chuàng)建django項(xiàng)目不需要在一行一行的敲黑窗口,而是用pycharm自帶的項(xiàng)目創(chuàng)建功能就可以了,具體步驟如下圖:
第二步設(shè)置好紅色方框里面的值后點(diǎn)擊create創(chuàng)建項(xiàng)目,接下來(lái)就可以發(fā)現(xiàn)pycharm已經(jīng)自動(dòng)為我們創(chuàng)建好了一個(gè)django項(xiàng)目了
接下來(lái)我們看下django的目錄結(jié)構(gòu),在novel_word這個(gè)目錄當(dāng)中有2個(gè)目錄
一個(gè)是novel_word,這個(gè)是django的項(xiàng)目主目錄,里面包含了整個(gè)項(xiàng)目的設(shè)置文件settings.py,還有路由文件urls.py,以及項(xiàng)目部署的文件wsgi
novel這個(gè)目錄是django項(xiàng)目中的一個(gè)app也就是應(yīng)用的目錄,里面主要包含常用的views.py視圖文件和models.py數(shù)據(jù)庫(kù)模型文件
manage.py這個(gè)文件就是django的管理文件,大部分的命令都要通過(guò)這個(gè)文件來(lái)執(zhí)行,如果通過(guò)命令行在啟動(dòng)這個(gè)項(xiàng)目等
那么django項(xiàng)目創(chuàng)建好以后就可以直接啟動(dòng)了,通過(guò)pycharm是一個(gè)不錯(cuò)的方式
啟動(dòng)以后就可以直接通過(guò)瀏覽器打開(kāi)這個(gè)django搭建的網(wǎng)站了
我們的任務(wù)完成了嗎?好像才剛剛開(kāi)始哦,因?yàn)槲覀円鲆粋€(gè)小說(shuō)網(wǎng)站,現(xiàn)在首頁(yè)顯示的意思大概是說(shuō)我們沒(méi)有定義路由所以顯示的是一個(gè)debug模式下的默認(rèn)頁(yè)面,那么我們就來(lái)看看怎么樣讓網(wǎng)站的首頁(yè)顯示一個(gè)我自己定義的頁(yè)面呢?
首先打開(kāi)urls.py這個(gè)文件,在未來(lái)的開(kāi)發(fā)過(guò)程中我們經(jīng)常會(huì)跟這個(gè)文件打交道,幾乎一個(gè)應(yīng)用就需要一個(gè)這樣的文件,它就是路由文件,說(shuō)的直白一點(diǎn)就是在這個(gè)文件里面來(lái)定義我們的網(wǎng)站有哪些頁(yè)面,如果要講清楚的話用文字就很難做到了,好吧是我懶,我懶得寫,如果還有小伙伴不了解的話可以進(jìn)群直接語(yǔ)音溝通哈
很顯然這個(gè)urlpatterns里面一個(gè)路由都沒(méi)有定義,所以才顯示的默認(rèn)頁(yè)面嘛,那么我們就先來(lái)定義一個(gè)首頁(yè),格式是這樣的
url(r'^$',views.index),
那么我來(lái)給小伙伴解釋下是什么意思
首先url是django中定義路由的一個(gè)函數(shù),它至少需要兩個(gè)參數(shù),第一個(gè)是路由的規(guī)則(就是你的網(wǎng)站定義的頁(yè)面),網(wǎng)站接收到請(qǐng)求后首先會(huì)拿到請(qǐng)求的url到這里面去通過(guò)正則匹配看是否有定義這個(gè)頁(yè)面,如果沒(méi)有定義這個(gè)頁(yè)面就返回404錯(cuò)誤頁(yè)面,所以知道404的來(lái)源了吧,第二個(gè)參數(shù)是正則匹配成功后就會(huì)把這個(gè)參數(shù)傳遞進(jìn)去作為相應(yīng)該請(qǐng)求的方法,那么也就是說(shuō)我們得事先先定義好一個(gè)用來(lái)響應(yīng)的方法,這個(gè)方法我們一般都會(huì)放在視圖文件里里面,我們通常稱之為視圖函數(shù),
那么我們?cè)僖淮蔚膩?lái)打開(kāi)網(wǎng)站的首頁(yè)
好了,終于自己定義好了一個(gè)首頁(yè),但是我們今天要做的是一個(gè)小說(shuō)網(wǎng)站,所以還有很多事情等著我們,首先做一個(gè)像樣的網(wǎng)站得有前端,因?yàn)槭莿?dòng)態(tài)網(wǎng)站還得有數(shù)據(jù)庫(kù),而django已經(jīng)給我們提供了一個(gè)非常好用的ORM模型,所以在django開(kāi)發(fā)過(guò)程中不會(huì)涉及到使用sql語(yǔ)句的尷尬情況
后面的知識(shí)點(diǎn)確實(shí)很難通過(guò)單純的文字的表述讓小伙伴們明白,所以我準(zhǔn)備晚上通過(guò)現(xiàn)場(chǎng)直播的方式給大家上課來(lái)講解完整的開(kāi)發(fā)流程和思想,下面給大家看下部分的代碼和效果
這個(gè)項(xiàng)目涉及到的知識(shí)點(diǎn)非常多,希望能夠通過(guò)2個(gè)小時(shí)的時(shí)間講完整個(gè)課程,也希望想要學(xué)好django的小伙伴準(zhǔn)時(shí)來(lái)聽(tīng)課