zoukankan      html  css  js  c++  java
  • django学习笔记之URL路由

    一、单一路由对应,最简单的:

    url('login/',views.login),
    

    二、基于正则的路由,一个视图函数可以匹配一类url:

    url(r'^detail-(d+).html', views.detail),  
    

    以上的就可以匹配detail-数字的url

    如果有多个需要匹配的参数,而且参数的位置不按顺序传递,可以这样写:

    url(r'^detail-(?P<nid>d+)-(?P<uid>d+).html', views.detail)
    

    在对应的视图函数中,除了request参数外,还接收nid和uid两个参数

    a. 
    				url(r'^detail-(d+)-(d+).html', views.detail),
    				
    				def func(request, nid, uid):
    					
    					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)
    

    四、name

    name是对url路由关系的命名,可以根据名称生成自己想要的url

    对URL路由关系进行命名, ***** 以后可以根据此名称生成自己想要的URL *****
    		
    		url(r'^asdfasdfasdf/', views.index, name='i1'),
    		url(r'^yug/(d+)/(d+)/', views.index, name='i2'),
    		url(r'^buy/(?P<pid>d+)/(?P<nid>d+)/', views.index, name='i3'),
    		
    		
    		
    		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 
    

    五、多级路由

    project/urls.py
    			from django.conf.urls import url,include
    			from django.contrib import admin
    
    			urlpatterns = [
    				url(r'^cmdb/', include("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),
    			]
    

      

  • 相关阅读:
    PHP操作redis
    鼠标失去焦点处理办法
    关于HTTP协议,一篇就够了
    什么是 CDN(超形象)
    网站部署之~阿里云系列汇总
    阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)
    mysql备份与还原
    .NET框架之“小马过河”
    .NET使用Bogus生成大量随机数据
    .NET中的值类型与引用类型
  • 原文地址:https://www.cnblogs.com/mesunyueru/p/9107881.html
Copyright © 2011-2022 走看看