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

    后续再详细介绍。

  • 相关阅读:
    EasyUI datagrid动态生成列
    EasyUI easyui-combobox实现数据联动
    EasyUI中datagrid的基本用法
    Oracle update 执行更新操作后的数据恢复
    SqlHelper类
    oracle drop table(表)数据恢复方法
    C#微信公众号——本地调试
    git ignore 总结
    maya cmds pymel 选择 uv area(uv 面积) 为0 的面
    maya cmds pymel selectType() 选择类型切换
  • 原文地址:https://www.cnblogs.com/star12111/p/15226614.html
Copyright © 2011-2022 走看看