关于django版本更新不同语法出现了变化

很多书籍和网络资料对与url路由都是用django1.x版本写的,但是现在django已经更新到了2.x时代,相关的url路由语法也有所变化,故一部分的内容无法照搬,最大的变动就是路由urlpatterns=[]写法的变化

下面是1.x版本的django路由函数

urlpatterns=[
    url(r'^$',views.index,name='index'),
    url(r'^topics/$',views.topics,name='topics'),
    url(r'^topics/(?(?P<topic_id>\d+)/)?$',views.topic,name='topic'),
    ]
而新版改为了
urlpatterns=[
    path('',views.index,name='index'),
    path('topics/',views.topics,name='topics'),
    re_path(r'^topics/(?:(?P<topic_id>\d+)/)?$',views.topic,name='topic'),
]

最直观表现为url改为path,并且没有用到正则表达式的路径可以不使用正则表达式格式了,2.x版本中如果要使用正则表达式的话,需要将path变为re_path。path与re_path都需要在django.urls中调用

其次还有几点变化:

1,不在使用include函数,需要提供namespace命名空间时,可以在文件头部分声明(例:app_name='learning_logs')

2,添加角色的url时,1.x版本是url(r'users/',include('users.urls',namespace='users')),但是2.x版本不在使用url函数,这时需要改为path('usrs/',include('users.urls'))

3,设置models时,如果对相关联的数据进行管理,不能用owner=models.ForeignKey(User)这种格式,2.x版本需要加上owner=models.ForeignKey(User,on_delete=models.CASCADE)参数,表示该项是否跟随上级的参数一同删除

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值