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开头
'''

url分发(二级分发)的更多相关文章

  1. django路由的二级分发

    基于二级分发设计url路由 path('index/', views.index), path('index/', ([ path('test01/', test01), path('test02/' ...

  2. stark 组件 url 二级分发的实现

    模拟 admin 组件url设计思路 项目urls 文件中: from django.contrib import admin from django.urls import path from st ...

  3. Netty-Websocket 根据URL路由,分发机制的实现

    最近在做netty整合websocket,发现网上很多项目都是最简单的demo,单例的一个项目. 然而公司的项目需要接受几个不同功能的ws协议消息,因此最好是用URL来区分,让页面上采用不同的链接方式 ...

  4. Django 的路由层URL 分组 路由分发 反向解析

    URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调 ...

  5. Django admin组件源码流程

    admin 组件 Django 自带的用户后台组件 用于用户便携的操作 admin 组件核心 启动 注册 设计url 启动核心代码 每个app 通过 apps.py 扫描 admin.py 文件 并执 ...

  6. Django之stark组件

    现在让我说啥是stark组件,我也说不清楚.反正从今天讲的知识来看,今天完成的就是自己写一个模块,这个模块包含了admin后台管理工具的一些比较好用的功能,我们把它提炼出来,也就是相当于自己写一个ad ...

  7. CRM系统之stark组件流程分析

    CRM系统主要通过自定义stark组件来实现的(参照admin系统自定义): STARK组件: 1 admin组件 1 如何使用admin 2 admin源码 3 创建自己的admin组件:stark ...

  8. url分发、isinstance、request.GET请求之QueryDict和urlencode、post和get请求、limit_choices_to(Model字段)

    这个的路径是怎么来的,是有一个个的url路由分发过来的 这两个是相等的,若url后面加括号了,那么前面就不用这个装饰器了:反之,若装饰器使用了,那么这个url后面就不要加括号了 eg:其他的views ...

  9. 单例模式及设计url分发

      1.单例模式 2.admin源码解析 3.注册源码流程图 3.admin之url方法的使用 4.admin源码之url设计 5.设计url源码流程 6.总结 1.单例模式 https://www. ...

随机推荐

  1. Chrome 浏览器快捷键

    Ø  前言 记录下 Chrome 的快捷键,原文链接:http://www.cnblogs.com/mikalshao/archive/2010/11/03/1868568.html   1.   标 ...

  2. luogu 2878 贪心

    其实这题不难,只是想告诉自己:贪心不全是真的脑残拿最大就AC 此题实际上就是比较x,y优先级利用时间计算得到a[i]t/a[i].d(没错时间在上,并非惯性思维的d在上) t*a[x].d+(t+a[ ...

  3. 【python小练】0005

    第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小. 首先,iphone5的分辨率是1136x640. if条件句判断横(纵)向是否大于对应的ipho ...

  4. try}-with-resources

    今天看前人代码的时候,发现了一个以前一直没用过的东西, 公司目前使用的是jdk1.8(vertx3需要), 在某处代码里有这样一行代码: try( FileOutputStream fos=new F ...

  5. GoogleNet

    NET-IN-NET 采用net-in-net 结构(不使用传统线性卷积,使用Mlpconv) 采用全局均值池化来提高传统CNN 网络中最后全连接层参数过于复杂的特点.(全连接层造成网络泛化能力差,a ...

  6. 利用PHP连接数据库操作用户注册、审核与登录页面

    注册页面 <body ><h1>注册页面</h1><form action="zhucechuli.php" method="p ...

  7. dbms_redefinition在线重定义表结构

    dbms_redefinition在线重定义表结构 (2013-08-29 22:52:58) 转载▼ 标签: dbms_redefinition 非分区表转换成分区表 王显伟 在线重定义表结构 在线 ...

  8. Docker 容器的隔离性

    Docker 容器的隔离性 就是 使用Linux namespace 来隔离运行环境和成 cgroup 限制容器使用的资源.  namespace 可以顾名思义 命名空间:所以可以理解为每个独立的容器 ...

  9. CTF 湖湘杯 2018 WriteUp (部分)

    湖湘杯 2018 WriteUp (部分),欢迎转载,转载请注明出处! 1.  CodeCheck(WEB) 测试admin ‘ or ‘1’=’1’# ,php报错.点击登录框下面的滚动通知,URL ...

  10. CentOS7.2通过Yum安装MySQL5.7

    1 下载源 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 2安装源 yum localinstall ...