Django——路由层(路由配置,APPEND_SLASH,路由分发) - Go语言中文社区

Django——路由层(路由配置,APPEND_SLASH,路由分发)


一、路由层之简单路由配置

1 路由参数  
    # 第一个参数是正则表达式
    # 第二个参数是视图函数内存地址
    # 第三个参数是个字典 {'name':lqz,'age':18},给视图函数传递默认值
    # 第四个参数name,当前路由的别名,用作反向解析
    url(r'^home2/', views.home,{'name':'ayca','age':19},name='home'),
    
2 访问根路径,触发视图函数执行(路由怎么配)
    -url(r'^$', admin.site.urls),

3 在路由中配置多个相同路由会怎么样?
    只会执行第一个

4 如下路由会怎么样?永远不会匹配到第二个
    url(r'^login', views.home),
    url(r'^login2', views.home),

 

二、路由层之APPEND_SLASH

 

1 路由配置如下
    url(r'^login/$', views.home),
    访问:http://127.0.0.1:8000/login/
    访问:http://127.0.0.1:8000/login   两次请求,重定向了一次

 2 是否开启URL访问地址后面部位/跳转至带有/的路径的配置项 ?
  Django settings.py配置文件中默认没有APPEND_SLASH这个参数,但 Django默认这个参数为APPEND_SLASH=True,其作用就是自动在网址结尾加'/'

  如果要去掉这种特性,需要在settings.py中写
  APPEND_SLASH=False #但是注意一般不要加这个

  设置为False就是关闭URL访问地址后面不为/跳转至带有/的路径的配置项

 

3 django如何实现的?通过一个中间件实现的django.middleware.common.CommonMiddleware(暂留)

 

三、路由分发

1 有一个总路径,根路由,总路由负责做分发
2 每个app有自己的路由和视图函数的对应关系

3 使用:
    -1 在根路由中配置
        # 路由分发
        # 第一种方式
        # url(r'^app01',include('app01.urls') ),
        # 第二种方式
        url(r'^app01',include(urls) ),
    -2 在不同app中新建urls.py
        urlpatterns = [
            url(r'login/', views.login),
            url(r'home/', views.home),
        ]
    -3 http://127.0.0.1:8000/app01/login/  先匹配app01,如果成功分发到app01的urls中继续匹配

 

 

 

 

 

版权声明:本文来源博客园,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.cnblogs.com/guojieying/p/13749061.html
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-15 23:05:45
  • 阅读 ( 951 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢