1、url(r'^index/', views.index),        函数处理
      url(r'^home/', views.Home.as_view()),           类方法处理
 
    2、url(r'^detail-(\d+).html', views.detail),         动态路由,位置参数
            <a href="/detail-{{key}}"></a>
            def detail(request,nid):
                    
 
    3、url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail)        动态路由,命名参数(将URL第一个匹配的给nid),而后台函数处理时,第一个数一定是nid
    PS: def detail(request, *args,**kwargs):
             pass    
    实战:
    a.
        url(r'^detail-(\d+)-(\d+).html', views.detail),
        def func(request, nid, uid):
        #不用id直接获取值是应为python有内置的函数id()
        #,如果使用ID接收参数,那么原生的id函数将被重写
            pass
        def func(request, *args):
            args = (2,9)
        def func(request, *args, **kwargs):
            args = (2,9)
    b.
        url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail)
        def func(request, nid, uid):
            pass
        def funct(request, **kwargs):    
            kwargs = {'nid': 1, 'uid': 3}
        def func(request, *args, **kwargs):
            args = (2,9)
 
    4、 name
    对URL路由关系进行命名, ***** 以后可以根据此名称生成自己想要的URL *****    
    ①url(r'^asdfasdfasdf/', views.index, name='i1'),->
    <form action="{%url :'i1'%}"> /index/                    如果想要和当前URL一样 需要使用path_info变量  {{request.path_info}}
    <form action="{%url :'i1'2 %}"> /index/2/
    <form action="{%url :'i1'nid=2 uid=3 %}"> /index/2/3/
 
    ②url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'),
 
    ③url(r'^buy/(?P<pid>\d+)/(?P<nid>\d+)/', views.index, name='i3'),
    2,3是动态的URL,不能用1的方法指定。只能用
    <form action="{{ request.path_info }}">
        反向生成URL
 
    ④url(r'^yug/(\d+)/(\d+)/', views.index, name='i2')
        from django.urls import reverse                                    根据名字反转生成URL,函数处理使用
        v = reverse("i2",args)=(90,80)
        v就等于 [ *,*,*,*:*/yug/90/80/ ]
        def func(request, *args, **kwargs):
            from django.urls import reverse
            url1 = reverse('i1') # asdfasdfasdf/
            url2 = reverse('i2', args=(1,2,)) # yug/1/2/
            url3 = reverse('i3', kwargs={'pid': 1, "nid": 9}) # buy/1/9/
        xxx.html
        {% url "i1" %} # asdfasdfasdf/
        {% url "i2" 1 2 %} # yug/1/2/
        {% url "i3" pid=1 nid=9 %} # buy/1/9/
    注:
        # 当前的URL
        request.path_info
 
 
    ☆5、多级路由            一个APP需要路由到另一个APP时
    project/urls.py
    from django.conf.urls import url,include
    from django.contrib import admin
 
    urlpatterns = [
    url(r'^cmdb/', include("app01.urls")),    
    #   /cmdb/**的URL转发给  app01.urls  
    url(r'^monitor/', include("app02.urls")),
    ]
    app01/urls.py
    from django.conf.urls import url,include
    from django.contrib import admin
    from app01 import views
 
    urlpatterns = [
    url(r'^login/', views.login),    
    ]
 
    app02/urls.py
    from django.conf.urls import url,include
    from django.contrib import admin
    from app02 import views
 
    urlpatterns = [
    url(r'^login/', views.login),    
    ]

Django学习-6-路由系统的更多相关文章

  1. Django学习之路由系统

    一.Django的路由系统 1.URLconf配置 基本格式: 参数说明: 2.正则表达式详解 基本配置 注意事项 补充说明 3.分组命名匹配 URLconf匹配的位置 捕获的参数永远都是字符串 视图 ...

  2. Django学习:url路由系统

    一.MTV模型 1.Django的MTV分别代表: Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM) Template(模板):放所有的html文件 模板语法:目的是将白变量( ...

  3. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  4. Django进阶(路由系统、中间件、缓存、Cookie和Session、Ajax发送数据

    路由系统 1.每个路由规则对应一个view中的函数 url(r'^index/(\d*)', views.index), url(r'^manage/(?P<name>\w*)/(?P&l ...

  5. django 中的路由系统(url)

    路由系统 根据Django约定,一个WSGI应用里最核心的部件有两个:路由表和视图.Django框架 的核心功能就是路由:根据HTTP请求中的URL,查找路由表,将HTTP请求分发到 不同的视图去处理 ...

  6. Django学习之路由分发和反向解析

    原 Django学习之路由分发和反向解析 2018年07月12日 14:04:55 huangql517 阅读数 519 1>路由分发 我们之前学习的路由配置都是在项目的全局控制文件(项目名称目 ...

  7. Django入门2:路由系统

    1.单一路由对应 url(r'^index/', views.index), # FBV url(r'^home/', views.Home.as_view()), # CBV 2.基于正则的路由 u ...

  8. Django框架简介-路由系统

    2.2 路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. 你就是 ...

  9. Django的URL路由系统

    一. URL配置 URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码. 基本格式 from ...

  10. Django之URL路由系统

    一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...

随机推荐

  1. AdobeFlashBuilder还不如AdobeFlashProfessional写actionscript体验好

    AdobeFlashBuilder还不如AdobeFlashProfessional写actionscript体验好. 这真是奇怪了.

  2. AJAX入门第一篇就够了

    什么是Ajax Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML Ajax实际上是下面这几种技术的融合: (1)XHTML和CSS的基于标准 ...

  3. MySQL Community Server 5.7安装详细步骤

    mysql社区版安装配置步骤较繁琐,几经搜索之后才成功安装,此文将所有的安装步骤及安装过程中遇到的问题进行了总结 1. 下载MySQL社区版     最新版下载地址:https://dev.mysql ...

  4. 使用TransactionScope(轻量级事务)实现数据库操作事务

    TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间.它的用途是为数据库访问提供了一个"轻量级"[区别于:SqlTransaction]的 ...

  5. python的面向对象和面向过程

    一.面向对象和面向过程的区别: a.面向过程: 1)根据业务逻辑从上到下写代码 2)开发思路是将数据和函数按照执行的逻辑顺序组织在一起 3)分开考虑数据与函数 定义性文字: 面向对象编程(Object ...

  6. Spring Task定时任务Scheduled

    Spring的任务调度,采用注解的形式 Spring中@Scheduled的用法. spring的配置文件如下,先扫描到任务的类,打开spirng任务的标签 <beans xmlns=" ...

  7. js压缩上传图片

    初学有不当之处,请多多指点, <body> <div class="cc"> <input type="file" id=&quo ...

  8. 【Tools】ubuntu16.04升级Python2.7到3.5

    最近开始学Python,但我发现我ubuntu16.04上默认的Python是2.7,并不是3,x 于是准备Python升级,记录安装过程给初学者参考一下. 1.先取得管理员权限, 个人习惯先取得管理 ...

  9. Math Jax开源数学编辑器的使用

    首先,这是一个开源免费,同时也可以支持扩展的软件. 使用API文档: 中文网站(http://mathjax-chinese-doc.readthedocs.io/en/latest/index.ht ...

  10. golang验证提交的数据中某个字段是否重复

    提交的json数据如下: { , , , ", , , "screen_mode": "3,2", , "ad_plats":[ ...