Django采用了MVT的軟件設(shè)計(jì)模式,即模型M,業(yè)務(wù)代碼V和模板T。
創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)雅安服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
本文介紹了Django運(yùn)行的基本配置。
一、構(gòu)建簡(jiǎn)單的MVT模型(三個(gè)文件夾,存放三種不同類型的文件):
????1、目錄:
????????????models:存放數(shù)據(jù)庫模型目錄
????????????template:存放模板文件目錄
????????????views:存放控制代碼目錄
二、Django基本說明:
????????1、安裝:把python目錄添加到系統(tǒng)的環(huán)境變量
pip?install?Django????????//使用python的pip命令安裝Django
????????????注意:
????????????????????1)、安裝的時(shí)候會(huì)提示報(bào)錯(cuò),提示“timeout”,原因:下載地址速度太慢,換在國內(nèi)地址
?pip?install?Django?-i?https://pypi.tuna.tsinghua.edu.cn/simple
????????????????????**永久更換下載源地址:
???????????????????????????-? linux下,新建/修改/.pip/pip.conf文件,添加下列內(nèi)容
????????????????????[global]???????????????????? ????????????????????timeout?=?300 ????????????????????index-url?=?https://pypi.tuna.tsinghua.edu.cn/simple ????????????????????[install] ????????????????????trusted-host?=?tsinghua.edu.cn
???????????????????????? ? - Windows下,在文件夾瀏覽窗口輸入%USERPROFILE%,新建\pip\pip.ini,添加下列內(nèi)容:
????????????????????????????????????[global]???????????????????????????????????? ????????????????????????????????????timeout?=?300 ????????????????????????????????????index-url?=?https://pypi.tuna.tsinghua.edu.cn/simple ????????????????????????????????????[install] ????????????????????????????????????trusted-host=tsinghua.edu.cn
? ? ? ? ? ? ? ? ?? 2)、安裝時(shí)提示“No module named pip”
? ? ? ? ? ? ? ? ? ? ? ? 原因有二,1、沒有安裝pip,如果使用python.exe安裝,把python主目錄下的Scripts添加到環(huán)境變量
????????????????????????????????????????? 2、Windows10下,右鍵使用管理員權(quán)限運(yùn)行cmd
????????????????????3)、pip下載下來的包直接存在python主目錄下的Scripts下,而Scripts目錄添加到了環(huán)境變量,所以安裝后,可以使用django這個(gè)命令確認(rèn)安裝狀態(tài)
??????2、使用manager.py新建項(xiàng)目:把Django目錄添加到系統(tǒng)環(huán)境變量
????????????新建項(xiàng)目時(shí),Django自動(dòng)創(chuàng)建項(xiàng)目的目錄:
????????????-項(xiàng)目名:
????????????????-manage.py:命令行管理工具,提供了與Django交互的接口。
????????????????????常用命令,startapp name新建APP、makemagrations、migrate(Django的ORM)
????????????????-項(xiàng)目包名:以項(xiàng)目包命名的容器,主要實(shí)現(xiàn)配置和和管理功能。
????????????????????-__init__.py:代表python一個(gè)包,python2.0必須有,才能代表是一個(gè)包,python3可以沒有
????????????????????-settings.py:項(xiàng)目的配置文件,配置靜態(tài)文件地址和
????????????????????-urls.py:配置網(wǎng)站目錄,指定網(wǎng)址轉(zhuǎn)向哪個(gè)文件。
????????????????????-wsgi.py:一個(gè) WSGI 兼容的 Web 服務(wù)器的接口,以便運(yùn)行你的項(xiàng)目。它定義了TCP連接、HTTP原始請(qǐng)求和響應(yīng)格式。
django-admin.exe?startproject?mysite????????//新建項(xiàng)目,名為mysite
????????3、啟動(dòng)項(xiàng)目:?jiǎn)?dòng)后就可以使用web瀏覽器訪問該網(wǎng)站
cd?mysite???????????????//進(jìn)入mysite目錄 python?manage.py?runserver?127.0.0.1:8000???????//可以省略ip:port,默認(rèn)本機(jī)ip和8000端口,也可指定ip:端口
????????4、創(chuàng)建一個(gè)APP:
???????????? ?? APP:相當(dāng)于整個(gè)網(wǎng)站的一個(gè)模塊。比如:主站(index)\BBS\BLOG\Video\News等等,每一個(gè)都是一個(gè)獨(dú)立的頁面或功能。
python?manage.py?startapp?blog????????????//新建一個(gè)名字是blog的APP
????????????????新APP默認(rèn)目錄:
????????????????-migrations包:修改數(shù)據(jù)表結(jié)構(gòu)
????????????????-__init__:代表APP是個(gè)包。。。
????????????????-apps.py:配置當(dāng)前App
????????????????-models.py:ORM,寫指定的類,通過命令可以創(chuàng)建數(shù)據(jù)庫結(jié)構(gòu)。
????????????????-tests.py:?jiǎn)卧獪y(cè)試
????????????????-views.py:業(yè)務(wù)代碼,存放后臺(tái)處理的代碼。
#配置urls.py指定網(wǎng)址訪問的頁面。APP要導(dǎo)入到views文件 import?blog.views #在urlpatterns列表添加下面值 url(r'^blog',blog.views.login),
????????5、templates和static文件夾:新建項(xiàng)目后需要?jiǎng)?chuàng)建這兩個(gè)文件夾。
????????????templates:存放.html類型的模板文件,在urls.py中可以更改設(shè)置
????????????static:存放靜態(tài)文件,比如JS/jQuery/CSS類型的文件,在settings.py中設(shè)置才能正常被使用。
????????????????????????根據(jù)個(gè)人喜好設(shè)置,可以在每個(gè)APP下設(shè)置,也可在manage.py同級(jí)目錄設(shè)定通用的static,
????????????以上兩個(gè)文件夾創(chuàng)建后的設(shè)置:
#增加settings.py文件templates的設(shè)置: TEMPLATES?=?['DIRS':?[os.path.join(BASE_DIR,'templates')]]???//修改dirs的值,指定為主目錄下的templates文件夾 #增加settings.py的static目錄的設(shè)置 STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)
? ? ? ? 6、幾個(gè)錯(cuò)誤:
????????????1)、form請(qǐng)求錯(cuò)誤,原因:form里的action帶/,django里的urls地址路由沒帶/,只在django框架里的錯(cuò)誤,
????????????解決方法,兩處/都刪掉或都加/
????????????2)、運(yùn)行csrf錯(cuò)誤,注釋掉csrf行,以后會(huì)對(duì)csrf進(jìn)行設(shè)置?
????????????3)、指定全局static目錄后,無法加載CSS樣式,提示Resource interpreted as Stylesheet but transferred with MIME type application/x-css
#html加載的CSS文件 <link?rel='style'?texttype='text/css'?href='/static/css.css'/> #解決方法:在html首行加 {%load?static%} #如果不想每次在模版中加載靜態(tài)文件都使用load加載static標(biāo)簽,那么可以在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static'],這樣以后在模版中就可以直接使用static標(biāo)簽,而不用手動(dòng)的load了。
'django.contrib.auth.middleware.AuthenticationMiddleware',
三、總結(jié)一個(gè)完整的HTTP請(qǐng)求過程:
????????
分享名稱:Django架構(gòu)說明
網(wǎng)頁鏈接:http://jinyejixie.com/article10/gdpsgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、企業(yè)建站、品牌網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、手機(jī)網(wǎng)站建設(shè)、電子商務(wù)
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)