溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Django架構(gòu)說明

發(fā)布時間:2020-07-20 09:15:13 來源:網(wǎng)絡(luò) 閱讀:453 作者:等你的破船 欄目:編程語言

Django采用了MVT的軟件設(shè)計模式,即模型M,業(yè)務(wù)代碼V和模板T。

本文介紹了Django運行的基本配置。


一、構(gòu)建簡單的MVT模型(三個文件夾,存放三種不同類型的文件):

????1、目錄:

????????????models:存放數(shù)據(jù)庫模型目錄

????????????template:存放模板文件目錄

????????????views:存放控制代碼目錄


二、Django基本說明:

????????1、安裝:把python目錄添加到系統(tǒng)的環(huán)境變量

pip?install?Django????????//使用python的pip命令安裝Django

????????????注意:

????????????????????1)、安裝的時候會提示報錯,提示“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)、安裝時提示“No module named pip”

? ? ? ? ? ? ? ? ? ? ? ? 原因有二,1、沒有安裝pip,如果使用python.exe安裝,把python主目錄下的Scripts添加到環(huán)境變量

????????????????????????????????????????? 2、Windows10下,右鍵使用管理員權(quán)限運行cmd

????????????????????3)、pip下載下來的包直接存在python主目錄下的Scripts下,而Scripts目錄添加到了環(huán)境變量,所以安裝后,可以使用django這個命令確認(rèn)安裝狀態(tài)


??????2、使用manager.py新建項目:把Django目錄添加到系統(tǒng)環(huán)境變量

????????????新建項目時,Django自動創(chuàng)建項目的目錄:

????????????-項目名:

????????????????-manage.py:命令行管理工具,提供了與Django交互的接口。

????????????????????常用命令,startapp name新建APP、makemagrations、migrate(Django的ORM)

????????????????-項目包名:以項目包命名的容器,主要實現(xiàn)配置和和管理功能。

????????????????????-__init__.py:代表python一個包,python2.0必須有,才能代表是一個包,python3可以沒有

????????????????????-settings.py:項目的配置文件,配置靜態(tài)文件地址和

????????????????????-urls.py:配置網(wǎng)站目錄,指定網(wǎng)址轉(zhuǎn)向哪個文件。

????????????????????-wsgi.py:一個 WSGI 兼容的 Web 服務(wù)器的接口,以便運行你的項目。它定義了TCP連接、HTTP原始請求和響應(yīng)格式。

django-admin.exe?startproject?mysite????????//新建項目,名為mysite

????????3、啟動項目:啟動后就可以使用web瀏覽器訪問該網(wǎng)站

cd?mysite???????????????//進入mysite目錄
python?manage.py?runserver?127.0.0.1:8000???????//可以省略ip:port,默認(rèn)本機ip和8000端口,也可指定ip:端口

????????4、創(chuàng)建一個APP:

???????????? ?? APP:相當(dāng)于整個網(wǎng)站的一個模塊。比如:主站(index)\BBS\BLOG\Video\News等等,每一個都是一個獨立的頁面或功能。

python?manage.py?startapp?blog????????????//新建一個名字是blog的APP

????????????????新APP默認(rèn)目錄:

????????????????-migrations包:修改數(shù)據(jù)表結(jié)構(gòu)

????????????????-__init__:代表APP是個包。。。

????????????????-apps.py:配置當(dāng)前App

????????????????-models.py:ORM,寫指定的類,通過命令可以創(chuàng)建數(shù)據(jù)庫結(jié)構(gòu)。

????????????????-tests.py:單元測試

????????????????-views.py:業(yè)務(wù)代碼,存放后臺處理的代碼。

#配置urls.py指定網(wǎng)址訪問的頁面。APP要導(dǎo)入到views文件
import?blog.views
#在urlpatterns列表添加下面值
url(r'^blog',blog.views.login),


????????5、templates和static文件夾:新建項目后需要創(chuàng)建這兩個文件夾。

????????????templates:存放.html類型的模板文件,在urls.py中可以更改設(shè)置

????????????static:存放靜態(tài)文件,比如JS/jQuery/CSS類型的文件,在settings.py中設(shè)置才能正常被使用。

????????????????????????根據(jù)個人喜好設(shè)置,可以在每個APP下設(shè)置,也可在manage.py同級目錄設(shè)定通用的static,

????????????以上兩個文件夾創(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、幾個錯誤:

????????????1)、form請求錯誤,原因:form里的action帶/,django里的urls地址路由沒帶/,只在django框架里的錯誤,

????????????解決方法,兩處/都刪掉或都加/


????????????2)、運行csrf錯誤,注釋掉csrf行,以后會對csrf進行設(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)簽,而不用手動的load了。
'django.contrib.auth.middleware.AuthenticationMiddleware',



三、總結(jié)一個完整的HTTP請求過程:

????????Django架構(gòu)說明







向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI