from   django.shortcuts import HttpResponse
def test(request):
return HttpResponse('test') from django.conf.urls import url,include
from myblog2 import config_views
from django.contrib import admin def test1(requets):
return HttpResponse('test1') def test2(requets):
return HttpResponse('test2') def add(requets,id):
return HttpResponse('add/%s'%id)
def list(requets):
return HttpResponse('list')
def delete(requets,id):
return HttpResponse('delete/%s'%id)
def change(requets,id):
return HttpResponse('change/%s'%id) def get_url_action(): action_dic=[]
action_dic.append(url('^$',list))###这个里面什么都不放,就但访问上一个页面的时候,就是查看内容
action_dic.append(url('^(\d+)/add/$',add))##加了$就表示后面不能在往下面url分发执行
action_dic.append(url('^(\d+)change$',change))
action_dic.append(url('^(\d+)/delete/$',change))
# action_dic.append(url('^\d+/delete/$',change))
#####注明一下,()是当做一个参数传到views里面

执行结果:delete/2

    return   action_dic

def get_url():
print('执行这个get_url的部分')
print(admin.site._registry)
tem=[]
for app_obj,admin_app_obj in admin.site._registry.items():
print(app_obj)##这个是一个类变量(form app01.models import User 这个User也是类变量 <class 'django.contrib.auth.models.User'> 类型)
app_name=app_obj._meta.app_label
############这个是拿这个app的名字,字符串的形式
model_name=app_obj._meta.model_name
###这个是可以拿到里面这个app01里面全部的表的名字 ,全部给取出来,字符串的形式了 print('打印出app名字是',app_name)
print('拿到全部的表的名字:',model_name)
    
      # tem.append(url(r'^{0}/{1}/$'.format(app_name,model_name),test2))
'''
这个是一级分发url
''' tem.append(url(r'^{0}/{1}/'.format(app_name,model_name),(get_url_action(),None,None)))
    #首先执行这个一级分发,然后在执行这个二级分发,之前这个不能加$,否则就不能往下面分发url下去了
'''
二级分发url,可以在往下面分发url
''' print(tem)
'''
[<URLPattern '^auth/group'>, <URLPattern '^auth/user'>, <URLPattern '^app01/userinfo'>, <URLPattern '^app01/article'>]
'''
return tem urlpatterns=[
url('^index',config_views.index),
url('^test',test),
url('^yunxin/',(get_url(),None,None)),
] 下面是另一种方式: ''' url('^yunxin/',(
[
url(r'^test3/',([
url(r'^test4',test2),
url(r'^test5',test2),
] ,None,None)), url(r'^test1',test1),
url(r'^test2', test2),
],None,None )) ''' None,None
###第一个是app的名字,第二个是命名空间的名字,后面两个可以自己取值,总之要传参数进去,什么值都可以传进去,不能缺少 '''
上面的尖叫号的作用,下面的url必须紧贴着上一个url,前面不能加其他值进来,否则是找不到这个url的
也就是说必须以什么开头,后面必须紧贴着下一个url
re.findall('^index/','/yunxin/index/tets1')
这个是匹配不了的,因为后面没有以index开头
'''

最新文章

  1. 流程开发Activiti 与SpringMVC整合实例
  2. IOS零碎技术整理(3)-获取wifi列表
  3. Unity Application 前后台切换调用关系
  4. 对Golang的一些看法
  5. URAL1826. Minefield 题解
  6. Bellman-Ford算法判负环
  7. MySQL check the manual that corresponds to your MySQL server version for the right syntax错误
  8. myeclipse中打开java文件中文乱码
  9. 转载:ECMAScript 6简介
  10. string和c_str()使用时的坑
  11. render与vue组件和注册
  12. winrar目录穿越漏洞
  13. 为虚机Linux系统设置静态IP,ping通外网并解决相关问题
  14. https笔记【转】
  15. hibernate05--list和iterator
  16. 多线程下的单例-double check
  17. css 鼠标选中内容背景色
  18. python多线程-Semaphore(信号对象)
  19. VMware vSphere can virtualize itself + 64-bit nested guests
  20. java和python中的string和int数据类型的转换

热门文章

  1. 如何使用Cygwin在Windows上运行OpenSSH SSHD服务器
  2. 【python小练】0011题
  3. 记录使用MyBatis_错误_警告_异常
  4. Docker(二)搭建和使用Docker
  5. oracle.sql.Clob类型转换成String类型
  6. MacOS安装kafka可视化工具Kafka Tool
  7. ubuntu 简单安装配置gitlab
  8. 架构学习之高性能NoSQL
  9. python问题:AttributeError: &#39;module&#39; object has no attribute &#39;SSL_ST_INIT&#39;
  10. MySql cmd下的学习笔记 —— 有关视图的操作(algorithm)