Django
不得不說(shuō)在Python中是一個(gè)非常強(qiáng)大的全棧框架,而且入門也比較簡(jiǎn)單,只要你學(xué)完了基本的Django
知識(shí),接著再做一兩個(gè)項(xiàng)目,不大不小就成,然后你再去學(xué)其它的框架你會(huì)發(fā)現(xiàn),在那些小而美的框架中,你學(xué)起來(lái)將非常的快,因?yàn)槟阍趯W(xué)習(xí)Django
的時(shí)候就已經(jīng)學(xué)習(xí)并且體驗(yàn)過(guò)了Web開發(fā)流程,所以會(huì)有這么一個(gè)現(xiàn)象出現(xiàn),有些新手朋友在學(xué)習(xí)Flask
、Tornado
等小而美的框架時(shí),很多概念不是很理解,比如ORM
、路由
等,但你學(xué)Django
就不會(huì)出現(xiàn)這種問(wèn)題。
Django
是從真實(shí)世界的應(yīng)用中成長(zhǎng)起來(lái)的,它是由堪薩斯(Kansas)州 Lawrence
城中的一個(gè)網(wǎng)絡(luò)開發(fā)小組
編寫的。 它誕生于2003 年秋天
,那時(shí)Lawrence Journal-World
報(bào)紙的程序員Adrian Holovaty
和Simon Willison
開始用Python
來(lái)編寫程序。
當(dāng)時(shí)他們的World Online
小組制作并維護(hù)當(dāng)?shù)氐膸讉€(gè)新聞?wù)军c(diǎn), 并在以新聞界特有的快節(jié)奏開發(fā)環(huán)境中逐漸發(fā)展。這些站點(diǎn)包括有LJWorld.com
、Lawrence.com
和KUsports.com
, 記者(或管理層) 要求增加的特征或整個(gè)程序都能在計(jì)劃時(shí)間內(nèi)快速的被建立,這些時(shí)間通常只有幾天或幾個(gè)小時(shí)。因此,Adrian
和Simon
開發(fā)了一種節(jié)省時(shí)間的網(wǎng)絡(luò)程序開發(fā)框架,這是在截止時(shí)間前能完成程序的唯一途徑。
2005年的夏天
,當(dāng)這個(gè)框架開發(fā)完成時(shí),它已經(jīng)用來(lái)制作了很多個(gè)World Online
的站點(diǎn)。當(dāng)時(shí)World Online
小組中的Jacob Kaplan-Moss
決定把這個(gè)框架發(fā)布為一個(gè)開源軟件。
從今往后數(shù)年,Django
是一個(gè)有著數(shù)以萬(wàn)計(jì)的用戶和貢獻(xiàn)者,在世界廣泛傳播的完善開源項(xiàng)目。原來(lái)的World Online
的兩個(gè)開發(fā)者(Adrian and Jacob)
仍然掌握著Django
,但是其發(fā)展方向受社區(qū)團(tuán)隊(duì)的影響更大。
摘錄自djangobook3
在學(xué)習(xí)Django之前讓我們先來(lái)了解下Django的訪問(wèn)流程把,這是很重要的,便于你理解Django
整個(gè)的工作流程是怎樣的,當(dāng)然我也把圖畫好了,如下圖所示:
解釋下上面的圖是如何工作的,先來(lái)擬這樣一個(gè)環(huán)境,你打開了QQ空間,但是在你沒有輸入QQ賬號(hào)和密碼的情況下是不可以直接訪問(wèn)你的空間的,此時(shí)你需要輸入賬號(hào)密碼才可以進(jìn)入,假設(shè)你賬號(hào)密碼輸出正確,自然而然的就進(jìn)入了QQ空間,就以這個(gè)例子來(lái)描述上圖的流程把:
用戶打開了Google瀏覽器,輸入QQ空間的URL,但是當(dāng)前沒有登錄,需要輸入賬號(hào)密碼,現(xiàn)在輸入賬號(hào)密碼了,然后點(diǎn)擊登錄;
點(diǎn)擊登錄的這個(gè)請(qǐng)求首先會(huì)進(jìn)入Django的路由系統(tǒng)(在路由前面其實(shí)還有中間件),代表你要訪問(wèn)哪一個(gè)資源,然后請(qǐng)求就被傳給了對(duì)應(yīng)路由的函數(shù);
這個(gè)時(shí)候函數(shù)接到了用戶傳過(guò)來(lái)的賬號(hào)密碼,去數(shù)據(jù)庫(kù)中(model,信號(hào)可以實(shí)現(xiàn)在數(shù)據(jù)庫(kù)之前之后做些操作)做匹配;
當(dāng)前用戶名和密碼正確,然后視圖就會(huì)渲染頁(yè)面;
把頁(yè)面返回給瀏覽器,此時(shí)用戶就進(jìn)入了自己的QQ空間
Django
本身是純Python
編寫的,所以安裝框架的第一步是確保你已經(jīng)安裝了python2.x
或者python3.x
,你可以在https://www.python.org/downloads/
這下載并安裝python。
我這里已經(jīng)安裝好了Python3.x
目前我的操作系統(tǒng)是Mac
并且已經(jīng)配置安裝好了pip3
和python3
,我們可以直接使用pip
來(lái)進(jìn)行安裝:
指定安裝django
版本,這個(gè)知識(shí)雖然不是django
內(nèi)的,但還是要說(shuō)一下
目前最新穩(wěn)定的版本是1.10
,你可以進(jìn)入Python
解釋器導(dǎo)入django
模塊來(lái)進(jìn)行校驗(yàn)是否正確安裝
如果在導(dǎo)入的時(shí)候沒有報(bào)錯(cuò)就表示已經(jīng)安裝成功,否則你可以需要重新安裝.
# 導(dǎo)入django >>> import django # 查看目前版本號(hào) >>> django.get_version() '1.10.5'django
為我們提供了一個(gè)django-admin
的指令,以方便與我們?cè)诿钚邢聞?chuàng)建django
項(xiàng)目,可以使用django-admin --help
查看該指令的幫助信息,當(dāng)然如果你想這么做。
現(xiàn)在我們來(lái)看一下比較常用的一個(gè)參數(shù)把,這些參數(shù)都是通過(guò)django-admin --help
得到的。
參數(shù) | 描述 |
---|---|
startproject | 創(chuàng)建一個(gè)完整的項(xiàng)目 |
startapp | 創(chuàng)建一個(gè)app |
runserver | 運(yùn)行django為我們提供的http服務(wù) |
shell | 進(jìn)入待django環(huán)境的shell |
makemigrations | 生成數(shù)據(jù)庫(kù)命令 |
migrate | 執(zhí)行生成好的數(shù)據(jù)庫(kù)命令 |
然后讓我們使用startproject
來(lái)創(chuàng)建一個(gè)項(xiàng)目吧
manage.py
文件是一種命令行工具,允許你以多種方式與該Django
項(xiàng)目進(jìn)行交互,輸入python manage.py help
可以看到他為我們提供了那些指定,比如如下命令都是常用的:
指定 | 描述 |
---|---|
createsuperuser | 創(chuàng)建一個(gè)django后臺(tái)的超級(jí)管理員 |
changepassword | 修改超級(jí)管理員的密碼 |
貌似這兩個(gè)也是最常用的,還有一個(gè)參數(shù)和上面django-admin --help
是一樣的, 請(qǐng)自行比較測(cè)試。
ansheng/settings.py
該項(xiàng)目的全局配置文件,很重要。
ansheng/urls.py
項(xiàng)目的路由配置文件,這是一個(gè)django項(xiàng)目的主入口文件。
還有一些其他不重要的文件就不做闡述了。
django
內(nèi)部是有一個(gè)內(nèi)建的輕量的web開發(fā)服務(wù)器,在開發(fā)期間你完全可以使用內(nèi)建的或者,從而免去了安裝配置nginx
或者apache
等。
如果你還沒啟動(dòng)服務(wù)器,請(qǐng)切換到你的項(xiàng)目目錄里,運(yùn)行下面的命令:
$ python manage.py runserver Performing system checks... System check identified no issues (0 silenced). You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. August 08, 2016 - 11:29:42 Django version 1.10, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.這將會(huì)在端口8000
啟動(dòng)一個(gè)本地服務(wù)器, 并且只能從你的這臺(tái)電腦連接和訪問(wèn)。 既然服務(wù)器已經(jīng)運(yùn)行起來(lái)了,現(xiàn)在用網(wǎng)頁(yè)瀏覽器訪問(wèn)http://127.0.0.1:8000/
。 你應(yīng)該可以看到一個(gè)令人賞心悅目的淡藍(lán)色Django歡迎頁(yè)面。
更改這個(gè)Development Server
的主機(jī)地址或端口
默認(rèn)情況下,runserver
命令在8000
端口啟動(dòng)開發(fā)服務(wù)器,且僅監(jiān)聽本地連接。 要想要更改服務(wù)器端口的話,可將端口作為命令行參數(shù)傳入:
通過(guò)指定一個(gè)IP
地址,你可以告訴服務(wù)器–允許非本地連接訪問(wèn)。 如果你想和其他開發(fā)人員共享同一開發(fā)站點(diǎn)的話,該功能特別有用。0.0.0.0
這個(gè)IP
地址,告訴服務(wù)器去偵聽任意的網(wǎng)絡(luò)接口。
完成這些設(shè)置后,你本地網(wǎng)絡(luò)中的其它計(jì)算機(jī)就可以在瀏覽器中訪問(wèn)你的IP
地址了。比如:http://192.168.1.103:8000/
這個(gè)例子中我們會(huì)涉及到django
的多方面知識(shí),比如后面幾章會(huì)學(xué)習(xí)到的路由
、視圖
、模型
、模板
、后臺(tái)管理
等知識(shí)點(diǎn)。
那么這是個(gè)什么例子呢?其實(shí)是一個(gè)很簡(jiǎn)單的例子,怎么個(gè)簡(jiǎn)單法兒,后臺(tái)添加用戶,前臺(tái)展示用戶,很簡(jiǎn)單吧,那我們接下來(lái)就來(lái)實(shí)操吧。
繼上面創(chuàng)建好的項(xiàng)目ansheng
之上我們?cè)趧?chuàng)建一個(gè)app
叫users
:
初次之外我們還需要把app
注冊(cè)到我們的項(xiàng)目中,可以在ansheng/settings.py
中找到INSTALLED_APPS
字典,把剛創(chuàng)建的APP名字添加進(jìn)去:
因?yàn)樾枰玫?code>html,所以我們也需要配置模板路徑文件了,先創(chuàng)建一個(gè)存放模板文件的路徑
$ mkdir templates繼續(xù)編輯settings.py
,找到TEMPLATES
,把DIRS
修改如下:
在ansheng/urls.py
中添加一條路由配置:
users/views.py
視圖函數(shù)內(nèi)容如下:
template/users.html
內(nèi)容如下
users/models.py
配置文件
users/admin.py
配置文件
最后我們生成數(shù)據(jù)庫(kù):
$ python manage.py makemigrations $ python manage.py migrate創(chuàng)建超級(jí)管理員用戶
$ python manage.py createsuperuser # 用戶名 Username (leave blank to use 'ansheng'): ansheng # 喲箱地址,可以為空 Email address: # 密碼 Password: # 確認(rèn)密碼 Password (again): Superuser created successfully.打開http://127.0.0.1:8000/admin/
登錄后臺(tái),輸入我們剛才創(chuàng)建好的用戶和密碼
找到我們剛才添加的app
,然后點(diǎn)擊ADD
添加一個(gè)或多個(gè)用戶:
繼續(xù)打開http://127.0.0.1:8000/users/
就能夠看到剛才添加的用戶了,你可以試著再添加一個(gè)用戶然后刷新頁(yè)面,看看是否會(huì)顯示出來(lái)你剛剛新添加的用戶,完。
#Python全棧之路 #Django
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)題目:1Python全棧之路系列之Django初體驗(yàn)-創(chuàng)新互聯(lián)
當(dāng)前地址:http://aaarwkj.com/article46/gjieg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站收錄、企業(yè)建站、面包屑導(dǎo)航、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容