Django框架流程
Django版本 : 1.11.11
一. Django流程
1. MVC是眾所周知的設計模式,即 : 將應用程序分為三個部分 : model(模型),view(視圖),controller(控制器), 其中 :
M -- 是應用程序用於處理應用程序數據邏輯的部分,通常模型對象負責在數據中存取數據.
V -- 是應用程序中處理數據顯示的部分.通常視圖是依據模型數據創建的.
C -- 是應用程序中處理用戶交互的部分,通常控制器負責從視圖讀取數據,控制用戶輸入,並行模型發送數據.
2. django也是一個MVC框架. 但是在django中, 控制器接收用戶輸入的部分由框架自行處理,所以django裏更關註的是Model(模型), Template(模板)和Views(視圖), 稱為MTV模式 :
M -- 模型, 即數據存取層. 該層處理的是與數據相關的所有事物 : 如何存取, 如何驗證有效性, 包含哪些行為以及數據之間的關系等.
T -- 模板, 即表現層. 該層處理的是與表現相關的決定 : 如何在頁面或其他類型文檔中進行顯示.
V -- 視圖,即業務邏輯層. 該層包含存取模型及調取恰當模板的相關邏輯. 可以將它看做模型與模板之間的橋梁.
二. Django基本配置
1. 常用命令
python manage.py runserver ip:port (啟動服務器,默認ip和端口為http://127.0.0.1:8000/)
python manage.py startapp appname (新建 app)
python manage.py syncdb (同步數據庫命令,Django 1.7及以上版本需要用以下的命令)
python manage.py makemigrations (顯示並記錄所有數據的改動)
python manage.py migrate (將改動更新到數據庫)
python manage.py createsuperuser (創建超級管理員)
python manage.py dbshell (數據庫命令行)
python manage.py (查看命令列表)
2. 程序目錄
3. 數據庫配置文件
#在與Django項目同名的包內的settings.py文件內配置 # 默認是SQLit 3 的配置 DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.sqlite3‘, ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘), } } # MySQL的配置 DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘:‘dbname‘, #註意這裏的數據庫應該以utf-8編碼 ‘USER‘: ‘xxx‘, #數據庫賬戶 ‘PASSWORD‘: ‘xxx‘, ‘HOST‘: ‘‘, #數據庫主機IP地址 ‘PORT‘: ‘‘, #數據庫端口 } } # 對於python3的使用者們還需要再加一步操作 # 由於Django內部連接MySQL時使用的是MySQLdb模塊,而python3中還無此模塊,所以需要使用pymysql來代替 # 如下設置放置的與Django項目同名的包下的 __init__.py文件中 import pymysql pymysql.install_as_MySQLdb() # PostgreSQL配置 DATABASES = { ‘default‘: { ‘NAME‘: ‘app_data‘, ‘ENGINE‘: ‘django.db.backends.postgresql_psycopg2‘, ‘USER‘: ‘XXX‘, ‘PASSWORD‘: ‘XXX‘ } # Oracle配置 DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.oracle‘, ‘NAME‘: ‘xe‘, ‘USER‘: ‘a_user‘, ‘PASSWORD‘: ‘a_password‘, ‘HOST‘: ‘‘, ‘PORT‘: ‘‘, } }配置代碼
Django框架對於開發者來說高度透明化,對於不同數據庫的具體使用方法是一致的, 改變數據庫只需要變動上述配置即可.
4. 靜態文件添加
# 首先在項目根目錄下創建static目錄 # 接著在settings.py 文件下添加 STATIC_URL = ‘/static/‘ # 默認已添加,使用靜態文件時的前綴 STATICFILES_DIRS = ( os.path.join(BASE_DIR,‘static‘), #行末的逗號不能漏 ) # 這樣在template中就可以導入static目錄下的靜態文件啦 # 例: <script src="/static/jquery-1.12.4.js"></script>static配置
三. Django路由系統
URL就像是Django所支撐網站的目錄. 它的本質是URL模式以及要為該URL模式調用的視圖函數之間的映射表; 就是以這種方式告訴Django, 對於這個URL調用對應的代碼, URL的加載就是從配置文件中開始.
基本格式 :
from django.conf.urls import url urlpatterns = [ url(正則表達式, views視圖函數,參數,別名), ]
參數說明 :
正則表達式:一個正則表達式字符串
views視圖函數:一個可調用對象,通常為一個視圖函數或一個指定視圖函數路徑的字符串
參數:可選的要傳遞給視圖函數的默認參數(字典形式)
別名:一個可選的name參數
註意事項 :
urlpatterns中的元素按照書寫順序從上往下逐一匹配正則表達式,一旦匹配成功則不再繼續。
若要從URL中捕獲一個值,只需要在它周圍放置一對圓括號(分組匹配)。
不需要添加一個前導的反斜杠,因為每個URL 都有。例如,應該是^articles 而不是 ^/articles。
每個正則表達式前面的‘r‘ 是可選的但是建議加上。
補充 :
Django settings.py配置文件中默認沒有 APPEND_SLASH 這個參數,但 Django 默認這個參數為 APPEND_SLASH = True。 其作用就是自動在網址結尾加‘/‘。
Django框架流程