美文网首页
05_路由层简单操作

05_路由层简单操作

作者: knot98 | 来源:发表于2018-11-07 17:11 被阅读0次

路由层

一、简单配置

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]
  • 第一个参数是正则表达式(如果要精准匹配:'^admin/$')
  • 第二个参数是视图函数(ps:不用加括号)

二、无名分组

# settings.py 文件
urlpatterns = [
    url(r'^publish/([0-9]{4})/([0-9]{2})$', views.publish),
]
# views.py 文件
def publish(request, mounth,year):
    return HttpResponse
  • 按位置传参
  • 分组之后,会把分组出来的数据,当位置参数,传到视图函数,所以,视图函数需要定义形参

三、有名分组

# settings.py 文件
urlpatterns = [
    url(r'^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.publish),
]
# views.py 文件
def publish(request, mounth,year):
    return HttpResponse
  • 按关键字传参
  • 有名分组之后,会把分组出来的数据,当关键字参数,传到视图函数,所以,视图函数需要定义形参,形参名字要跟分组的名字对应,与顺序无关

四、反向解析

1、先命名
无参数:
    url(r'^publish/$', views.publish,name='pub'),

无名分组:
    url(r'^publish/([0-9]{4})/([0-9]{2})/$',views.publish,name='pub'), 

有名分组:
    url(r'^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$',views.publish,name='pub'), 
2、在模板层中
无参数:
    {% url 'pub' %}
    
无名分组的:
    {% url 'pub' 2018 12 %}
    
有名分组:
    {% url 'pub' 2018 12 %}  还可以 {% url 'pub' year=2018 mounth=12 %}
3、在视图层
from django.shortcuts import reverse
# 视图函数内
无参数:
    url=reverse('pub')
无名分组:
    url=reverse('pub',args=(2018,12,))
有名分组:
    url=reverse('pub',args=(2018,12,)) 还可以 url=reverse('pub',kwargs={'year':2018,'mounth':12})

五、路由分发

1、在不同的app里创建urls.py
2、在总路由中
from django.conf.urls import include 
urlpatterns = [
    url(r'^blog/',include('blog.urls')),
    url(r'^app01/',include('app01.urls')),
]
3、在不同的app的urls里配置路由关系
!!!重点:总路由,不能加结束符$

六、名称空间

# 总路由
urlpatterns = [
    url(r'^blog/',include('blog.urls',namespace='blog')),
]
# 子路由:
urlpatterns = [
    url(r'^publish/$', views.publish,name='test'),
]
# 反向解析:
    #视图层:
    url = reverse('blog:test')
    #模板层:
    {% url 'app01:test'%}
***一般不要用***

七、伪静态

# 路由:
    url(r'^book/(?P<id>\d+.html)',views.book),
# 访问:
    http://127.0.0.1:8000/book/4.html
            
# 将自己的页面伪装成与html文件一样的静态文件

相关文章

  • 05_路由层简单操作

    路由层 一、简单配置 第一个参数是正则表达式(如果要精准匹配:'^admin/$') 第二个参数是视图函数(ps:...

  • vue路由的介绍(四)--嵌套路由

    嵌套路由 简单的理解就是在路由中在嵌套一层路由。 具体的做法是: 1,配置路由 2,父路由里面配置子路由显示的地方...

  • node.js之koa2知识点总结

    第一个程序 路由 简单路由 复杂路由 get与post 判断 获取参数 静态资源 文件上传 mysql操作 封装m...

  • 路由器与三层交换机

    1.路由器是三层设备,专业处理三层报文的能力较强,三层协议支持更多,而三层交换不是很专业,它只是提供简单的路由功能...

  • [计算机网络]Ch.6 传输层

    传输层 1 传输层功能与简介 为什么需要两个不同的独立控制层 网络层运行在由运营商ISP操作的路由器上,用户无法控...

  • 网络虚拟化技术一

    介绍 虚拟网络构建(简单) 虚拟路由器网络架构(不承接前面的操作结果,新虚拟机) 分析 路由上配置dhcp服务

  • Gin框架全套实战免费视频教程

    01.API的URL规则设计、带参数的路由 02.是否一定要用MVC模式、路由分组 03.简单Dao层代码封装、使...

  • IP地址、ARP协议、子网掩码、到底做了什么?

    本文章内容包括: 网络层IP协议相关IP协议子网划分简单路由过程 网络层其他协议ARP与RARPICMP协议 IP...

  • Flask----函数数据类型传参

    一 ** MTV简单介绍 控制层 Views层 对数据进行操作 函数执行 视图层 Templates 页面展示层 ...

  • 计算机网络之网络层篇

    一、章节导学 1. 网络层IP协议相关 IP协议 子网划分 简单路由过程 2. 网络层其他协议 ARP协议与RAR...

网友评论

      本文标题:05_路由层简单操作

      本文链接:https://www.haomeiwen.com/subject/utgvxqtx.html