打開cmd,利用之前學(xué)的技能,將我們?yōu)閐jango準(zhǔn)備的虛擬環(huán)境激活,進(jìn)入到項(xiàng)目目錄,也就是父mysite目錄下
D:/django_project/mysite
你會(huì)看到里面有一個(gè)一個(gè)mysite目錄和manage.py
之前,我們新建了項(xiàng)目,但是我們還沒確認(rèn)項(xiàng)目是否新建成功,所以,為了確認(rèn)一下,我們敲入
python manage.py runserver
django內(nèi)置了一個(gè)服務(wù)器軟件,你可以認(rèn)為是簡化版的apache,但是足夠調(diào)試使用了,注意,僅僅夠調(diào)試,服務(wù)器軟件的功能它基本都有,但是,真正部署起來,還是要來專業(yè)人士(nginx或apache)來做,因?yàn)槊鎸?duì)業(yè)界復(fù)雜的環(huán)境,比如高訪問量,這個(gè)服務(wù)器軟件隨時(shí)會(huì)崩。我們離部署使用還遠(yuǎn)的呢,所以就姑且用著django內(nèi)置的服務(wù)器軟件吧.
啟動(dòng)內(nèi)置的服務(wù)器軟件,這樣,我們的計(jì)算機(jī)就可以提供網(wǎng)絡(luò)服務(wù)了。
這時(shí),打開瀏覽器,輸入
127.0.0.1:8000
如果不出意外,那么,你將看到以下的界面
如果你的英語還不錯(cuò)的話,除了看到恭喜二字,你還能看到他提示你需要新建一個(gè)APP,此外,你能夠看到這個(gè)界面,一方面是因?yàn)槲覀兲幱陂_發(fā)階段,所以設(shè)置中DEBUG參數(shù)是TRUE,因此,在我們還沒有建立任何APP的情況下,我們看到了這個(gè)恭喜的頁面。關(guān)于這個(gè)開發(fā)模式,這是很有作用的模式,在我們開發(fā)的時(shí)候,我們務(wù)必保持DEBUG為TRUE,也就是保持它的默認(rèn)值,不用去管他們,這種情況下,如果我們的代碼出現(xiàn)問題,他會(huì)在瀏覽器上把問題詳細(xì)列出來,方便我們尋找bug,否則,正常情況下,網(wǎng)頁加載出問題,一般都會(huì)出現(xiàn)什么404錯(cuò)誤,503錯(cuò)誤之類的。當(dāng)然,到了部署的時(shí)候,就一定要記得把這個(gè)關(guān)掉,這涉及到安全問題,這個(gè)DEBUG模式,會(huì)泄露我們系統(tǒng)的參數(shù)。管他呢,反正我們離部署還差得遠(yuǎn),到時(shí)再說。
很多人看到這里會(huì)比較沮喪,認(rèn)為自己離部署這么遠(yuǎn),那么何年何月才能夠做出一個(gè)能夠投入使用的東西呢?自己啥也不會(huì),也沒有租用什么服務(wù)器,更沒有什么域名,學(xué)這django,也就只能在自己的計(jì)算機(jī)上搞搞,沒有什么成就感。那你就錯(cuò)了!
只要你處于一個(gè)局域網(wǎng)內(nèi),假設(shè)你們宿舍共用一個(gè)wifi,或者你們家共用一個(gè)wifi,再或者,你們部門共用一個(gè)wifi,我覺得這些場景應(yīng)該比較常見,那么你在學(xué)完我的教程之后,至少能夠在局域網(wǎng)內(nèi),為大伙建設(shè)一個(gè)云盤(你可以拿舊機(jī)器和就硬盤來做硬件,廢物利用)。再遠(yuǎn)一步,假如你能夠掌控宿舍的路由器,掌控家里的路由器,掌控家里路由器,掌控部門的路由器,那么通過一些設(shè)置,別的宿舍的同學(xué),你的小區(qū)里其他人,其他部門的人就也能使用你搭建的云盤。使用范圍也還是挺大的。
不信,請(qǐng)跟著我試試,先確認(rèn)你的計(jì)算機(jī)處于一個(gè)局域網(wǎng)內(nèi),實(shí)在不行,把手機(jī)熱點(diǎn)打開,連接到手機(jī)熱點(diǎn),和手機(jī)組成一個(gè)局域網(wǎng)。
我們先退出剛剛啟動(dòng)的服務(wù)器軟件。
在cmd里面我們也看到它的提示說,按ctrl+c可以退出
照做就是了,有時(shí)候可能要多按幾次才能退出。
敲入
ipconfig
找到關(guān)鍵的字眼,獲得你的計(jì)算機(jī)的ip地址。比如我的ip就是
172.20.10.4。你要記下你的ip。以后我講解的時(shí)候一般都是用這個(gè)ip地址,你要對(duì)應(yīng)改成自己的ip地址。
然后我們打開文件夾,進(jìn)入到我們的項(xiàng)目管理的目錄下
找到settings.py用sublime打開,并找到里面的allowed_hosts參數(shù)
把我們剛剛記下的ip地址用單引號(hào)引起來,填進(jìn)去,然后按Ctrl+S保存修改
回到我們的cmd,敲入
python manage.py runserver 172.20.10.4:80
這時(shí)候你在自己的瀏覽器上輸入自己的ip地址就可以看到剛剛那句恭喜的話。你在自己的手機(jī)上(連在了同一個(gè)局域網(wǎng)),用手機(jī)的瀏覽器輸入你計(jì)算機(jī)的ip地址,同樣也能看到恭喜的頁面。這說明,在一個(gè)局域網(wǎng)內(nèi),你開發(fā)的django應(yīng)用別人也是能夠使用的!是不是很開心,假如你像老王一樣是一個(gè)詩人,你只要把詩寫進(jìn)一個(gè)html文檔里面,馬上就可以發(fā)布了。整個(gè)局域網(wǎng)的人都能上去拜讀!
這里解釋一下剛剛所做的一切:
獲取ip就不多說了,這是局域網(wǎng)內(nèi),別人找到你的關(guān)鍵所在。
那個(gè)allowed_hosts參數(shù),根據(jù)django官方的解釋是可以防止host頭攻擊,什么是host頭呢,其實(shí),在我們的例子中就是ip地址,他就是允許瀏覽通過輸入ip地址來向我們的django發(fā)送訪問請(qǐng)求。將來你有了域名,比如你買了laowang.com作為網(wǎng)頁的域名,那么要允許別人通過這個(gè)域名來訪問你的網(wǎng)站,你就必須把‘laowang.com’也放進(jìn)這個(gè)參數(shù)設(shè)置之中。
而我們?cè)谂躵unserver的時(shí)候,添加了兩個(gè)參數(shù),第一個(gè)參數(shù)是
172.20.10.4
這個(gè)是在設(shè)置服務(wù)器的ip,我們的計(jì)算機(jī)在局域網(wǎng)中的ip可以用作服務(wù)器的ip,因?yàn)閯e的機(jī)器只有通過這個(gè)ip才能能找到你,這其中涉及到的路由問題,你有興趣可以閱讀思科的教程。這里我們暫且可以不管,這個(gè)如果你偷懶,你也可以輸入0.0.0.0,效果是一樣的,他會(huì)自動(dòng)把我計(jì)算機(jī)的ip包括進(jìn)去,更偷懶,我們還可以只寫一個(gè)0來代表這個(gè)地址,一個(gè)零作為縮寫來代替四個(gè)零。
第二個(gè)參數(shù)80表示的是我們的服務(wù)器監(jiān)聽80號(hào)端口。一般來說,我們通過瀏覽器輸入地址,后面不加上端口的話,瀏覽器就會(huì)默認(rèn)我們需要的是http服務(wù),會(huì)自動(dòng)幫我們加上80的端口號(hào),再去向服務(wù)器發(fā)送服務(wù)請(qǐng)求。這樣一來別人訪問你的時(shí)候就不用特地加上端口號(hào)了。
完成以上的步驟,我們只需要的局域網(wǎng)內(nèi)的任何一臺(tái)計(jì)算機(jī)的瀏覽器上輸入我們的ip號(hào)就可以訪問我們的網(wǎng)站了。
咱們的開發(fā)過程就保持這樣的參數(shù)吧,讓整個(gè)局域網(wǎng)的人都能看到我們的開發(fā)進(jìn)程!