Django1.x和Django2.x 版本之間的差別(持續更新......)


路由層

1.X用的是url
2.X、3.X用的是path

url第一個參數是一個正則表達式
而path第一個參數不支持正則表達式 寫什么就匹配什么
如果你覺得path不好用 2.x、3.x給你提供了一個跟url一樣的功能
re_path 等價於1.x里面的url功能

雖然path不支持正則表達式 但是它給你提供了五種默認的轉換器
str,匹配除了路徑分隔符(/)之外的非空字符串,這是默認的形式
int,匹配正整數,包含0。
slug,匹配字母、數字以及橫杠、下划線組成的字符串。
uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
path,匹配任何非空字符串,包含了路徑分隔符(/)(不能用?)

path('login/<int:year>/',login)

除了默認的五種轉換器之外 還支持你自定義轉換器
class MonthConverter:
regex='\d{2}' # 屬性名必須為regex

def to_python(self, value):
return int(value)

def to_url(self, value):
return value # 匹配的regex是兩個數字,返回的結果也必須是兩個數字

 

 

 

 

Registering custom path converters      官方文檔

 

 

 

 

 

模型層

外鍵字段

django1.x是級聯更新,級聯刪除

django2.x以上需要手動同步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM