zoukankan      html  css  js  c++  java
  • django路由——关于路由最后斜杠的问题

    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

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

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

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

     如果在setting中修改该配置为

    APPEND_SLASH=False

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

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

     

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

  • 相关阅读:
    服务器 防Dos攻击
    多浏览器 div 半透明
    网站工具收集
    广告平台
    ie6 position:fixed
    数据图 饼图 曲线图
    36个css框架
    css3 特效
    日ip 日pv
    网站 需求分析 收集
  • 原文地址:https://www.cnblogs.com/alantammm/p/13803476.html
Copyright © 2011-2022 走看看