python+Django框架運用(一)
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:正則表達式,匹配請求的url
views:視圖處理函數或者其他urls.py文件
kwargs:字典,用來向views傳參
name:字符串,給url起別名.
3、通過 url 向 views 傳參
1).使用正則表達式傳參
使用子組傳參,一個子組是一個參數,想要多個參數的話,可以使用多個子組
子組 - ()
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框架運用(一)