一、區別
路由層
1.django 1.x路由層使用url方法
??? django 2.x和3.x版本使用path方法
??????? url() 第一個參數支持正則
??????? path()第一個參數是不支持正則的
??????? 可以使用?re_path替代url()
from django.urls import re_path # django2.0中的re_path
#不建議導入url,不能區分版本
#from django.conf.urls import url # 在django2.0中同樣可以導入1.0中的urlurlpatterns = [re_path(r'^index/',index ),
]
2.不支持正則,但內部支持五種轉換器
path('articles/<int:article_id>/detail/', views.detail_view)
django默認支持一下5種轉換器(Path converters)
str,匹配除了路徑分隔符(/)之外的非空字符串,這是默認的形式
int,匹配正整數,包含0。
slug,匹配字母、數字以及橫杠、下劃線組成的字符串。
uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
path,匹配任何非空字符串,包含了路徑分隔符(/)(不能用?)
3.還有自定義轉換器
參考:https://www.cnblogs.com/xiaoyuanqujing/articles/11642628.html
模型層
1.x 默認級聯更新刪除的
2.x和3.x需要自己手動配置參數
#1.x
blog = models.OneToOneField(to='Blog', null=True,)#2.x
blog = models.OneToOneField(to='Blog', null=True, on_delete=models.CASCADE())
版本匹配
python對應django版本的對應表,開始django前建議根據匹配版本避坑
Django version ——Python versions
1.11 —— 2.7, 3.4, 3.5, 3.6, 3.7 (added in 1.11.17)
1.8 —— 2.7, 3.2 (until the end of 2016), 3.3, 3.4, 3.5
1.9,1.10 —— 2.7,3.4,3.5
2.0 —— 3.4, 3.5, 3.6, 3.7
2.1, 2.2 —— 3.5, 3.6, 3.7
3.0, 3.1 —— 3.6, 3.7, 3.8
另外對于python和mysql對應版本參考如下:
參考
https://zhuanlan.zhihu.com/p/89354539