zoukankan      html  css  js  c++  java
  • Django学习笔记九---003篇---命名空间和url的使用方式

    一:namespace(命名空间)

    命名空间(namespace):用来表示标识符的作用范围

    一个标识符可以在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突。

    1.1:namespace使用原因

    如果一个项目下有多个应用,例如:

     项目:mysite下面有polls和text_platform两个应用。

    每个应用下面都有对应urls.py文件,文件冲都有一个index/的路径,

    那么,Django在反向解析路由的时候,就会出现得到不是我们想要的结果。

    例如:把polls/urls.py中的index路径解析到了text_platform/urls.py中,通过views指向了我们不要的页面。访问不同URL,反向解析得到相同的path。

    虽然我们定义了:name='index',但是,name是没有作用域的,

    而namespace是有作用域的。我们定义namespace后,它就只能作用在该应用下面。

    例如:

     polls应用和text_platform应用,我们定义了namespace后,那么,就算他们下面的urls.py文件中有相同的/index/路径,那么,我们反向解析时,也不会指向同一个path,一定是指向每个index对应的path.

    (同理,他们也不会与mysite项目下的urls.py文件中的index/(假如有的话)指向同一个path),

    另外注意一点,namespace是与include的可选参数,就是说,当出现了,include的时候,就可以使用namespace,没有include的时候,namespace是不能使用的。

    这一点与name不同,name是在path中都可以使用的。

    1.2:namespace的书写格式:

    path('应用名/’,include(('应用名.urls','应用名‘),namespace='应用名’)  注意()的个数,很容易少写一个()的。

    例如:

     参考博客:https://blog.csdn.net/J_wb49/article/details/103055521 

    二:路由的使用方式

    在模板templates中使用路由.

    以前讲templates的时候,介绍过render函数。

    注意的是,render函数的参数,request,templates名称是必填参数,

    context是选填参数。

    后续还会继续写关于templates的博客,到时再详细介绍。

    三:路由的重定向

    重定向包括两种,1,路由的重定向  2,自定义视图的重定向。

    其中,自定义视图的重定向又包括3、种方式,

    分别是:HttpResponseRedirect, HttpResponseRedirectBase  和redirect

    代表301和302

    后续再详细介绍。

  • 相关阅读:
    asp.net mvc实现图片下载防盗链及提示是否存在!
    Asp.net mvc + Javascript 灵活的网站广告解决方案
    我自己Diy的asp.net mvc框架,支持多级目录!
    在asp.net mvc中创建使用Linq to sql的分页控件
    用asp.net开发移动wap网站集成在线wap模拟器
    .net平台下的手机在线wap网站模拟器(附源代码)
    opensuse 11.1 安装flashplayer
    引用第三方类库的私有类与私有方法
    如何统计代码行执行的时间?
    linux mono 调用windows sqlServer 2005
  • 原文地址:https://www.cnblogs.com/star12111/p/15226614.html
Copyright © 2011-2022 走看看