django路由-关于路由最后斜杠的问题

转载django路由-关于路由最后斜杠的问题https://www.cnblogs.com/alantammm/p/13803476.html

1.结尾不带斜杠

路由文件中配置如下:

urlpatterns = [
    path('demo',views.demo1)
]

启动服务,这时候访问地址 http://127.0.0.1:8000/demo

正常访问

这时候访问地址http://127.0.0.1:8000/demo/

会报错404  

因为这里必须严格匹配,在路由中配置的结尾没有 /  如果需要访问该地址的话,结尾也不能带有斜杠

 

2.结尾带斜杠

路由文件中配置如下

urlpatterns = [
    path('demo/',views.demo1)
]

启动服务,这时候访问地址http://127.0.0.1:8000/demo

正常访问  当然如果访问地址http://127.0.0.1:8000/demo/ 也是能正常访问的

 

这里就有疑问了,为什么这里结尾没有加斜杠,没有严格匹配,却可以正常访问,而且访问的时候还自动给这个地址末尾带了一个/

因为django默认配置有一个设置  

APPEND_SLASH=True

顾名思义,就是自动添加斜杠,这里截图示例 

[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imbg.csdnlmg.cn/78dbdgynog3b73054fbe98ca5d828b769841.png)https://img-blog.csdnimg.cnj/78dbd93b73054fbe98ca5d828b769841.png)]

 

 图中清晰的展示了整个过程,在输入的地址是不带斜杠的时候,根据django默认的配置,会判断如果添加了斜杠,会不会访问到资源,如果加了斜杠能访问到资源的话,就会重定向到加了斜杠的

地址。  但是如果加了斜杠都无法访问到资源的话,就不会进行重定向的操作,比如 我这里输入 127.0.0.1:8000/demo123  再次查看请求过程 如下图(这里就不会去自动加斜杠了)

 

 

 如果在setting中修改该配置为

APPEND_SLASH=False

这时候再次访问地址http://127.0.0.1:8000/demo

这里就会直接报错404了,不会去做添加斜杠的操作

 

 

PS:在自己手动测试的过程中,要记得清理缓存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值