一篇文章帶你自學(xué)python Django
1. Django簡(jiǎn)介
Django是什么?
Django 是用Python開發(fā)的一個(gè)免費(fèi)開源的Web框架,可以用于快速搭建高性能,優(yōu)雅的網(wǎng)站!采用了MVC->MVT的框架模式。
Django前景
在Python中,與web開發(fā)相關(guān)的包有13045個(gè),其中django就占了9091個(gè),約70%。同時(shí),Python中活躍的web框架多達(dá)54,其中最活躍的包括Django,flask等。Django便是其中的佼佼者,截至目前,已經(jīng)有超過5200個(gè)中大型網(wǎng)站使用Django開發(fā)。比較知名的使用Django的公司:
國內(nèi):豆瓣、知乎等
國外:Google、YouTube(油管)、Instagram(照片墻)->facebook等
Django框架核心
1、一個(gè)面向?qū)ο蟮挠成淦鳎米鲾?shù)據(jù)模型(以 Python 類的形式定義)和關(guān)系型數(shù)據(jù)庫間的介質(zhì);
2.、一個(gè)基于正則表達(dá)式的 URL 分發(fā)器(路由分發(fā)器);
3、一個(gè)視圖系統(tǒng),用于處理請(qǐng)求;
4、一個(gè)模板系統(tǒng)(HTML、css、js)。
2. 設(shè)計(jì)模式
MVT模式
Django的MVT設(shè)計(jì)模式由Model(模型), View(視圖) 和Template(模板)三部分組成,分別對(duì)應(yīng)單個(gè)app目錄下的models.py, views.py和templates文件夾。它們看似與MVC設(shè)計(jì)模式不太一致,其實(shí)本質(zhì)是相同的。Django的MVT設(shè)計(jì)模式與經(jīng)典的MVC對(duì)應(yīng)關(guān)系如下。
- Django Model(模型): 與MVC中的模型Model類似
- Django View(視圖): 類似于MVC中的控制器Controller,負(fù)責(zé)根據(jù)用戶請(qǐng)求從數(shù)據(jù)庫中讀取數(shù)據(jù),指定向y用戶展示數(shù)據(jù)的方式(網(wǎng)頁或json數(shù)據(jù)),同時(shí)也能處理用戶提交過來的數(shù)據(jù)。
- Django Template(模板): 類似于MVC中的視圖View,用于呈現(xiàn)Django View傳遞過來的數(shù)據(jù),也決定了用戶界面的外觀。同時(shí)也包含了表單,用于收集用戶傳遞的數(shù)據(jù)。
Django MVT設(shè)計(jì)模式中最重要的是視圖(view),view會(huì)同時(shí)與模型(model)和模板(templates)進(jìn)行交互。當(dāng)用戶發(fā)來一個(gè)請(qǐng)求(request)時(shí),Django會(huì)對(duì)請(qǐng)求頭信息進(jìn)行解析,解析出用戶需要訪問的url地址,然后根據(jù)路由urls.py中的定義的對(duì)應(yīng)關(guān)系把請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的視圖處理。視圖會(huì)從數(shù)據(jù)庫讀取需要的數(shù)據(jù),指定渲染模板,最后返回響應(yīng)數(shù)據(jù)。
3. 開發(fā)環(huán)境簡(jiǎn)介
1.系統(tǒng)支持:linux(推薦,項(xiàng)目常用),mac,windows
unix
推薦使用linux:linux兼容性比mac與windows更加優(yōu)秀
2.linux系統(tǒng)
- 虛擬機(jī)中安裝linux系統(tǒng)(推薦使用)
- 使用云服務(wù)器
- 安裝雙系統(tǒng)
3.開發(fā)環(huán)境支持
- python
- pip
- virtualenv (虛擬環(huán)境)
- mysql
注:為什么開發(fā)時(shí)需要在虛擬環(huán)境里:
4. 干凈,環(huán)境與環(huán)境之間是相互獨(dú)立的。eg:爬蟲項(xiàng)目放在環(huán)境1,Django放在環(huán)境2中,那么兩個(gè)項(xiàng)目中的包的使用不會(huì)相互沖突。
4.創(chuàng)建虛擬環(huán)境
4.1.首先安裝管理環(huán)境的包以及虛擬環(huán)境包
4.1.1 安裝環(huán)境管理包virtualenvwrapper
注:pycharm的編輯器的終端與cmd終端是一樣的,因此在pycharm中進(jìn)行安裝操作相同
4.1.2 安裝虛擬環(huán)境包virtualenv
4.1.3 查看pip list,檢查是否安裝成功
檢查存在以上兩個(gè)包,因此安裝成功。
4.2 對(duì)虛擬環(huán)境的操作
4.2.1 創(chuàng)建虛擬環(huán)境
創(chuàng)建虛擬環(huán)境命令為mkvirtualenv
創(chuàng)建環(huán)境名
(django2108_1)表示已經(jīng)進(jìn)入到環(huán)境中。
4.2.2 查看虛擬環(huán)境中的包,并安裝Django包
4.2.3 退出虛擬環(huán)境
命令為:deactivate
4.2.4 查看創(chuàng)建所有虛擬環(huán)境
命令為:workon
4.2.5 進(jìn)入指定的虛擬環(huán)境
命令為:workon
已創(chuàng)建的虛擬環(huán)境
4.2.6 刪除虛擬環(huán)境
命令為:rmvirtualenv
虛擬環(huán)境名
注:想要?jiǎng)h除虛擬環(huán)境,首先要退出要?jiǎng)h除的虛擬環(huán)境
4.3 更換虛擬環(huán)境中的路徑(創(chuàng)建虛擬環(huán)境的路徑默認(rèn)在c盤)
根據(jù)自己選擇,通過創(chuàng)建系統(tǒng)變量WORKON_HOME,將環(huán)境變量存儲(chǔ)到不同的路徑。
5.項(xiàng)目創(chuàng)建與服務(wù)啟動(dòng)
5.1創(chuàng)建項(xiàng)目
5.1.1 再次創(chuàng)建虛擬環(huán)境
5.1.2 在磁盤中創(chuàng)建文件夾用來存放項(xiàng)目
5.1.3 打開存放項(xiàng)目的文件夾,作為項(xiàng)目文件
5.1.4 添加環(huán)境變量
5.1.5 在新的環(huán)境中安裝django包
5.1.6 創(chuàng)建項(xiàng)目
命令為:django-admin startproject 項(xiàng)目名
5.1.7 創(chuàng)建子應(yīng)用
首先cd到創(chuàng)建的項(xiàng)目路路徑中,其次輸入python manage.py startapp 子應(yīng)用名稱,創(chuàng)建子應(yīng)用。
5.1.8 注冊(cè)子應(yīng)用
5.2 啟動(dòng)服務(wù)
方式一:直接在終端輸入命令python manage.py runserver
方式二:通過設(shè)置Python中終端執(zhí)行參數(shù)
方式三:通過設(shè)置Django server(推薦使用),注:需要設(shè)置根目錄和配置文件
5.3.打開網(wǎng)頁,查看結(jié)果
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python IDE PyCharm的基本快捷鍵和配置簡(jiǎn)介
這篇文章主要介紹了Python IDE PyCharm的基本快捷鍵和配置簡(jiǎn)介,PyCharm為一個(gè)收費(fèi)的軟件,需要的朋友可以參考下2015-11-11如何不用安裝python就能在.NET里調(diào)用Python庫
這篇文章主要介紹了如何不用安裝python就能在.NET里調(diào)用Python庫,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Python3+Selenium+Chrome實(shí)現(xiàn)自動(dòng)填寫WPS表單
本文通過python3、第三方python庫Selenium和谷歌瀏覽器Chrome,完成WPS表單的自動(dòng)填寫,通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02python 基于UDP協(xié)議套接字通信的實(shí)現(xiàn)
這篇文章主要介紹了python 基于UDP協(xié)議套接字通信的實(shí)現(xiàn),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01解決Python plt.savefig 保存圖片時(shí)一片空白的問題
今天小編就為大家分享一篇解決Python plt.savefig 保存圖片時(shí)一片空白的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01pandas與pyspark計(jì)算效率對(duì)比分析
這篇文章主要介紹了pandas與pyspark計(jì)算效率對(duì)比,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06python pygame實(shí)現(xiàn)2048游戲
這篇文章主要為大家詳細(xì)介紹了python pygame實(shí)現(xiàn)2048游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11python_array[0][0]與array[0,0]的區(qū)別詳解
今天小編就為大家分享一篇python_array[0][0]與array[0,0]的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Django框架靜態(tài)文件處理、中間件、上傳文件操作實(shí)例詳解
這篇文章主要介紹了Django框架靜態(tài)文件處理、中間件、上傳文件操作,結(jié)合實(shí)例形式詳細(xì)分析了Django框架中靜態(tài)文件處理、中間件及上傳文件操作相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2020-02-02