zoukankan      html  css  js  c++  java
  • 路由分发与名称空间

    路由分发

    """
    django的每一个应用都可以有自己的templates文件夹 urls.py static文件夹
    正是基于上述的特点 django能够非常好的做到分组开发(每个人只写自己的app)
    作为组长 只需要将手下书写的app全部拷贝到一个新的django项目中 然后在配置文件里面注册所有的app再利用路由分发的特点将所有的app整合起来
    
    当一个django项目中的url特别多的时候 总路由urls.py代码非常冗余不好维护
    这个时候也可以利用路由分发来减轻总路由的压力
    
    利用路由分发之后 总路由不再干路由与视图函数的直接对应关系
    而是做一个分发处理
        识别当前url是属于哪个应用下的 直接分发给对应的应用去处理
        
    """
    
    
    # 总路由
    from app01 import urls as app01_urls
    from app02 import urls as app02_urls
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        # 1.路由分发
        url(r'^app01/',include(app01_urls)),  # 只要url前缀是app01开头 全部交给app01处理
        url(r'^app02/',include(app02_urls))   # 只要url前缀是app02开头 全部交给app02处理
      
        # 2.终极写法  推荐使用
        url(r'^app01/',include('app01.urls')),
        url(r'^app02/',include('app02.urls'))
        # 注意事项:总路由里面的url千万不能加$结尾
    ]
    
    # 子路由
        # app01 urls.py
      from django.conf.urls import url
      from app01 import views
    
      urlpatterns = [
          url(r'^reg/',views.reg)
      ]
      # app02 urls.py
      from django.conf.urls import url
      from app02 import views
    
      urlpatterns = [
          url(r'^reg/',views.reg)
      ]

    名称空间

    # 当多个应用出现了相同的别名 我们研究反向解析会不会自动识别应用前缀
    """
    正常情况下的反向解析是没有办法自动识别前缀的
    """
    
    # 名称空间
        # 总路由
        url(r'^app01/',include('app01.urls',namespace='app01')),
        url(r'^app02/',include('app02.urls',namespace='app02'))
      # 解析的时候
          # app01
          urlpatterns = [
        url(r'^reg/',views.reg,name='reg')
            ]
        # app02
        urlpatterns = [
        url(r'^reg/',views.reg,name='reg')
            ]
        
          reverse('app01:reg')
        reverse('app02:reg')
        
        {% url 'app01:reg' %}
        {% url 'app02:reg' %}
    # 其实只要保证名字不冲突 就没有必要使用名称空间
    """
    一般情况下 有多个app的时候我们在起别名的时候会加上app的前缀
    这样的话就能够确保多个app之间名字不冲突的问题
    """
    urlpatterns = [
        url(r'^reg/',views.reg,name='app01_reg')
    ]
    urlpatterns = [
        url(r'^reg/',views.reg,name='app02_reg')
    ]

    伪静态

    """
    静态网页
        数据是写死的 万年不变
        
    伪静态
        将一个动态网页伪装成静态网页
        
        为什么要伪装呢?
            https://www.cnblogs.com/Dominic-Ji/p/9234099.html
            伪装的目的在于增大本网站的seo查询力度
            并且增加搜索引擎收藏本网上的概率
        
        搜索引擎本质上就是一个巨大的爬虫程序
        
        总结:
            无论你怎么优化 怎么处理
            始终还是干不过RMB玩家
    """
    urlpatterns = [
        url(r'^reg.html',views.reg,name='app02_reg')
    ]
  • 相关阅读:
    2.24 Java基础总结 ①内部类基础
    2.24 Java基础总结 ①访问权限②static③静态方法④实例初始化块⑤静态初始化块
    2.24 Java基础总结 ①for-each循环②继承概念③全类名④方法重写
    Shell 编程和Python编程的那些不同之处(一)
    python标准异常
    Python 常用模块总结
    Python正则表达式指南
    新员工入职自动加入所在部门的邮件组。
    c++四则运算代码
    马云语录
  • 原文地址:https://www.cnblogs.com/mayrain/p/13055296.html
Copyright © 2011-2022 走看看