Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
URL配置(URLconf)就像 Django 所支撑网站的目录。它的本质是 URL 与要为该 URL 调用的视图函数之间的映射表;对于客户端发来的某个 URL 调用哪一段逻辑代码对应执行。
from django.urls import path, include, re_path
① 路由分发
settings.py 文件中 ROOT_URLCONF 变量指定全局路由文件名称
from django.urls import path, include, re_path
Django使用urlpatterns变量表示路由(url.py),改变量是列表类型,由 path() 或re_path()作为元素组成。
② 反向解析
在使用Django 项目时,一个常见的需求是获得URL 的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等)。
from django.urls import reverse
from django.shortcuts import render, reverse, redirect
③ 名称空间
命名空间是表示标识符的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。
由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回。
在开发项目时,会经常使用name属性反解出URL,当不小心在不同的app的urls中定义相同的name时,可能会导致URL反解错误,为了避免这种事情发生,引入了命名空间。