Django url path 版本区别 级联更新 级联删除

django1.X路由层使用的是url方法
    而在django2.Xhe3.X版本中路由层使用的是path方法
    url()第一个参数支持正则
    path()第一个参数是不支持正则的 写什么就匹配什么
如果你习惯使用path那么也给你提供了另外一个方法
        from django.urls import path, re_path
 
 
虽然path不支持正则 但是它的内部支持五种转换器(需要的时查笔记,先不用硬记)
  • path('index/<int:id>/',index)
  • # 将第二个路由里面的内容先转成整型然后以关键字的形式传递给后面的视图函数
 
def index(request,id):
print(id,type(id))
return HttpResponse('index')
    
 
str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
int,匹配正整数,包含0。
slug,匹配字母、数字以及横杠、下划线组成的字符串。
uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
path,匹配任何非空字符串,包含了路径分隔符(/)(不能用?)
 
 
模型层里面1.X外键默认都是级联更新删除的
但是到了2.X和3.X中需要你自己手动配置参数(用的时候不会百度一下)
    models.ForeignKey(to='Publish')
    
    models.ForeignKey(to='Publish',on_delete=models.CASCADE...)
 
    on_delete=models.SET_NULL  -> 不要级联删除
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2022-08-04 10:09  tslam  阅读(136)  评论(0编辑  收藏  举报