標籤:html alt 基本 shanghai model 地址映射 ini 多個參數 bin
Django 介紹:
django是一個採用Python語言開發的開源架構,2005年發布。早期是做新聞以及內容管理的網站的,提供了非常強大的後管理系統。
django官網:https://www.djangoproject.com
架構模式:
djando的架構模式 - MTV:
M (Models)-------> 模型層:負責資料庫的建模以及CRUD(增刪改查)操作;
T (Templates)--------> 模板層:用於處理使用者顯示的內容,比如HTML;
V (Views)--------> 視圖層:處理與使用者互動的部分操作,從模型中擷取資料,再將資料發送給模板,並顯示給使用者。
ps: MTV是屬於django的一種架構模式,除了MTV之外還有一個比較出名的模式--MVC;
MTV和MVC的功能做一個簡單對應,如下:
M - - - - - - M(Models):模型層
T - - - - - - V(Views):視圖層
V - - - - - - C(Controllers):控制層
下面有一張MTV模式的架構圖:
Django安裝
ps:ubuntu系統
一、先查看是否已安裝Django,
在終端中進入python3的互動模式,匯入django;如果成功,輸入一下命令查看版本
django.VERSION
二、開始安裝
1、線上安裝
sudo pip3 install django (預設安裝最高版本)
sudo pip3 install django==1.11.8 (指定安裝版本為1.11.8)
ps:這雷根據自身需求
2、離線安裝
1). 先到官網下載所需的Django安裝包
2). 在環境中解壓Django包
tar -xvf Django-1.11.8.tar.gz
3). 進入到解壓出來的目錄中進行安裝
sudo python3 setup install
Django的簡單使用
一、建立Django項目,在終端中輸入如下指令:
django-admin startproject 項目名
例: django-admin startproject mytext
二、啟動服務並訪問網站
使用manage.py檔案來啟動服務,如下:
python3 manage.py runserver
ps:也可以使用./manage.py runserver 啟動,但是如果你使用的是python3,需要進入manage.py檔案中,將第一行改為 #!/usr/bin/env python3(已經是則不用改)
Djanogo項目的結構
一、manage.py ---->負責執行Django中的各項操作檔案:
如:
啟動服務、建立管理員、建立應用、資料庫的同步操作等....
二、主目錄(名稱同項目名)
1、__init__.py
項目的初始設定檔案,服務啟動時,會自動執行。
2、urls.py
項目的基礎url設定檔
3、wsgi.py
應用伺服器設定檔
4、settings.py
項目的豬設定檔案,下面介紹settings.py檔案中的一些重要變數的含義:
BASE_DIR: 擷取當前項目的根目錄路徑
DEBUG:偵錯模式,開發過程中推薦使用True,上線運行推薦是False
ALLOWED_HOSTS:設定允許訪問本項目的地址清單,預設為空白,表示只能本地,* 表示任何地址
INSTALLED_APPS:指定已安裝的應用,如果有自己建立的應用,需要在這進行註冊
MIDDLEWARE:指定註冊的中介軟體
ROOT_URLCONF:指定項目的基礎路由設定檔
TEMPLATES:指定模板的資訊
DATABASES:指定資料庫的資訊
LANGUAGE_CODE:指定網站顯示的語言,中文(zh-Hans)
TIME_ZONE:指定時區,中國時區(Asia/Shanghai)
URL的使用
1、urls.py(檔案)
預設是在主目錄中,主路由設定檔,會包含最基本的地址映射;每個請求到達之後
都會由urls.py檔案中urlpatterns列表的url進行匹配;url()函數匹配上之後,可能交給其他
urls.py檔案或者視圖(views)處理。
2、url()函數
文法:url(regex, views, kwargs=None, name=None)
regex:Regex,匹配請求的url
views:視圖處理函數或者其他urls.py檔案
kwargs:字典,用來向views傳參
name:字串,給url起別名.
3、通過 url 向 views 傳參
1).使用Regex傳參
使用子組傳參,一個子組是一個參數,想要多個參數的話,可以使用多個子組
子組 - ()
urlpatterns = [
#訪問路徑是run/的時候,交個run_views去處理
url(r‘^run/$‘,run_views),
#訪問路徑是run/任意兩位元字,交給run_args_views去處理
url(r‘^run/(\d{2})‘,run_args_views),
#訪問路徑是run/四位元字/兩位元字/,交給run1_views處理
url(r‘^run/(\d{4})/(\d{2})/$‘,run1_views),
]
ps:
1、在url()中,一個子組()表示一個參數
2、在views.py中,對應的處理函數要根據url()中子組的個數,相應的定義參數,定義的參數要位於request之後
例子:
1、url(r‘^run/(\d{2})‘,run1_views),
def run1_views(request,num)
2、url(r‘^run/(\d{2})/(\d{4})‘,run2_views)
def run2_views(request,num1,num2)
4、使用url()第三個參數,字典傳參
url(r‘^show/$‘,show_views,{‘name‘:‘laoshe‘,‘age‘:‘89‘})
def show_views(request,name,age):
name:表示的就是字典name參數的值
age:表示的就是字典age參數的值
ps:
1、視圖處理函數中,必須聲明參數
2、參數的名稱和位置,必須要與字典中的名稱和位置保持一致
python+Django架構運用(一)