Django必知必會(一)相關配置介紹及動態URL

2021-10-04 15:12:57 字數 2556 閱讀 2598

一、django 介紹

在 web 早期階段,開發者手動編寫每個頁面。更新**要編輯 html;重新設計要重新製作每乙個網頁,而 且一次只能改乙個網頁。隨著**體量的增大,這種方式立馬變得繁瑣、浪費時間,最終變得不切實際。

cgi 的開發促使了第一代動態**的出現。然而,cgi 自身也有問題:cgi 指令碼包含大量重複的樣板**, 導致**難以復用,而且新手難以編寫和理解。

php 解決了這些問題中的多數,在 web 開發界引起了一陣風暴。php 現在是建立動態**最流行的工具, 多門類似的語言(asp、jsp,等等)都參照了 php 的設計原則。php 的主要創新是易於使用:php **直 接嵌入普通的 html 中;對學過 html 的人來說,學習曲線極為平緩。

但是,php 也有自身的問題:就是因為易於使用,寫出的**凌亂、重複,設計不周。更糟的是,php 沒有 為程式設計師提供多少防止安全漏洞的保護機制,很多 php 開發者意識到這一點再去學習相關的知識就晚了。

上述問題以及類似的缺陷直接促使了「第三代」web 開發框架的湧現。web 開發的新方式也提公升了人們的雄 心,現在 web 開發者每天所做的工作越來越多。

django 就是為了迎接這些雄心而誕生的。

二、django入門及配置

建立django專案:django-admin startproject 專案名

setting 配置介紹:

常見設計模式:mvc

django設計模式:mvt

檢視和url:配置url相當於django驅動**的目錄,簡單來講,url配置把url對映到相應的檢視函式上。我們以這種方式告訴django,訪問哪些url時呼叫哪些**。在使用命令建立的django專案中是關於django專案的一些配置管理檔案其中 urls.py 是django專案中url的宣告配置檔案。

include:用於匯入另乙個url配置檔案

urlpatterns:負責定義url和處理url的**之間的對映

url():這個函式負責告訴django如何處理配置的url,使用哪些類方法或者函式

url格式說明:url(r"^index/$", indexview.as_view(), name=「index」)

正規表示式:django的url配置允許使用任何複雜的正規表示式匹配複雜的url

r :在python語法裡,字串中的反斜線代表某種轉義特殊字元,所以需要使用r來宣告為「原始字串」裡面的反斜線不用於轉義

:表示在字串的開頭匹配模型,例如:r「index/」 表示任何以 index/ 開頭的url都可以被匹配

: 表示

在字串的結尾匹

配模型,

例如:r

「ind

ex/:表示在字串的結尾匹配模型,例如:r「index/

:表示在字元

串的結尾

匹配模型

,例如:

r「in

dex/

」 表示任何以 /index/ 結尾的url都可以被匹配

root_urlconf:它是django中乙個重要的配置選項,它告訴djangourl配置在哪個python模組中,當接受請求後,django 載入 root_urlconf 設定指定的 url 配置,然後按照順序檢查url配置中每個url的配置模式,依次與請求的url做比較,直到找到配置模式為止。

django處理請求的過程:

請求url例如:/index

django 檢視 root_urlconf 設定,找到根 url 配置

django 比較 url 配置中的各個 url 模式,找到與 /hello/ 匹配的配置模式

找到匹配的配置模式後,呼叫對應的檢視函式

檢視函式返回對應的資料

url配置和松耦合:松耦合是一種軟體開發方式,其價值是讓元件可以互換,如何兩部分**是送耦合,那個改動其中一部分,對另一部分幾乎沒有影響,在django應用中,url的定義與所呼叫檢視的函式是送耦合的關係,既某個功能使用哪個url與檢視函式的實現本身放在兩個地方。

動態url:可以攜帶引數的url,首先http協議向伺服器傳參的途徑:

url路徑引數:如果想從url中獲取值,需要在正規表示式中使用分組

url(r'^(\d+)/(\d+)/$'

, views.index)

url(r'^(?p\d+)/(?p\d+)/$'

, views.index)

當使用了關鍵字引數時,那麼檢視函式中的偏移量的引數名也要和關鍵字引數名相同

查詢字串:獲取請求路徑中的查詢字串引數(形如?k1=v1&k2=v2)通過request.get屬性獲取,返回querydict物件,使用 request.get.get() 來獲取引數

請求體:請求體資料格式不固定,可以是表單型別字串,也可以是json、xml(可以傳送請求體資料的請求方式有 post、put、patch、delete)

mysql必知必 SQL必知必會學習筆記 一

資料庫基礎 資料庫 資料庫軟體 確切的說,資料庫軟體應稱為資料庫管理系統 dbms 資料庫是通過dbms建立和操作的容器 資料庫相當於檔案櫃 容器 表相當於檔案 同乙個資料庫不能存在相同的表名,不同的資料庫可以存在相同的表名 主鍵應滿足的條件 唯一性非空性 not null 主鍵列中的值不允許修改或...

SQL必知必會筆記一

外來鍵 select語句 檢索單個列select prod name from products 從products表中檢索乙個名為prod name的列檢索多個列 檢索所有列select from products 檢索不同值 限制結果 排序資料select prod name from prod...

Django環境下ORM操作必知必會13條

1.models.py檔案內容 from django.db import models class person models.model id models.autofield primary key true name models.charfield max length 32,verbos...