• 路由层


    1 简单配置
    -第一个参数是正则表达式(如果要精准匹配:'^publish/$')
    -第二个参数是视图函数(不要加括号)
    -url(r'^admin/', admin.site.urls),
    2 无名分组
    -按位置传参
    -分组之后,会把分组出来的数据,当位置参数,传到视图函数,所以,视图函数需要定义形参
    -url(r'^publish/([0-9]{4})/([0-9]{2})$', views.publish),
    -def publish(request,*args): 视图函数可以这样接收
    3 有名分组
    -按关键字传参
    -有名分组之后,会把分组出来的数据,当关键字参数,传到视图函数,所以,视图函数需要定义形参,形参名字要跟分组的名字对应,与顺序无关
    -url(r'^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.publish),
    -def publish(request, mounth,year):
    *****有名分组和无名分组,不要混用
    4 反向解析
    -先命一个名:
    -1 无参数:url(r'^publishadd133/$', views.publishadd,name='ddd'),
    -2 无名分组:url(r'^publishadd/([0-9]{4})/([0-9]{2})/$', views.publishadd,name='ddd'),
    -3 有名分组:url(r'^publishadd/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$', views.publishadd,name='ddd'),
    -在模板层:
    -1 无参数:{% url 'ddd' %}
    -2 无名分组的:{% url 'ddd' 2018 12 %}
    -3 有名分组:{% url 'ddd' 2018 12 %} 还可以 {% url 'ddd' year=2018 mounth=12 %}

    -在视图层:
    from django.shortcuts import reverse
    在视图函数里:
    1 无参数:url=reverse('ddd')
    1 无名分组:url=reverse('ddd',args=(2018,12,))
    1 有名分组:url=reverse('ddd',args=(2018,12,)) 还可以 url=reverse('ddd',kwargs={'year':2018,'mounth':12})
    5 路由分发
    1 在不同的app里创建urls.py
    2 在总路由
    -from django.conf.urls import include
    -url(r'^blog/',include('blog.urls')),
    -url(r'^app01/',include('app01.urls')),
    3 在不同的app的urls里配置路由关系
    ***重点***总路由,不能加结束符$
    6 名称空间
    -url(r'^blog/',include('blog.urls',namespace='blog')),
    -子路由:url(r'^publish/$', views.publish,name='test'),
    -反向解析:
    -视图层:url = reverse('blog:test')
    -模板层:{% url 'app01:test'%}
    ***一般不要用***
    子路由:url(r'^publish/$', views.publish,name='app01_test'),

    7 伪静态
    -路由:url(r'^book/(?P<id>d+.html)',views.book),
    -访问:http://127.0.0.1:8000/book/4.html

  • 相关阅读:
    Spring IOC容器基于配置文件装配Bean(5) ------通过工厂方法配置bean
    Spring IOC容器基于配置文件装配Bean(4) ------bean生命周期
    Spring IOC容器基于配置文件装配Bean(3) ------装配集合属性
    Spring IOC容器基于配置文件装配Bean(2) ------通过setter或构造方法注入
    Spring IOC容器基于配置文件装配Bean(1) ------设置autowire自动装配
    Java实现序列化的作用和目的
    静态语言与动态语言
    C# WinForm 界面控件
    C# 中类与继承等概念
    C# 中的函数与方法
  • 原文地址:https://www.cnblogs.com/fushaunglin/p/9925536.html
Copyright © 2020-2023  润新知