三.路由分配及模板渲染
*补充:
1) 两个默认端口(隐藏):
http 80
https 443
2) 关于域名部分:
域名 + 端口: www.baidu.com : 80
IP地址 + 端口: 127.0.0.1 : 8080
3) 关于路径(内部url): 路由需要区分并通过路径进行请求的分发(例如:支付、登录、注册等请求)
4) # 的含义 : # 代表锚点,就是网页定位在 #name 这个位置(即默认显示在浏览器的最上方)
1)项目文件夹: 即settings.py
文件所在的路径的文件夹。
2) URL conf模块: urls.py
,其中在urls.py
里面的变量 urlpatterns 称为路由模式。另外,在项目文件夹(crm)下的urls.py
称为根配置文件
3) urlpatterns : 定义了路由规则,是 django.urls.path 的一个列表。在 path( ) 中:如果前面的 路径 是匹配符合的,就会调用后面的方法(视图)。
4) django的运作流程 :
当网页上有一个请求
3.path
path(route, view, kwargs=None, name=None)
1)route
route 是一个字符串,url 规则
2)view
view 是一个视图
形如:view.index_view
,其中index_view
是个函数,千万不要加 ( ) ,加上 ( ) 是返回值会报错。
3)kwargs
kwargs 是额外的参数,是一个字典。
4)name
name url 规则的名字
1)实际例子
想要在 crm 中获取某个学生的详情,那么需要在 数据库 中【数据库中的唯一标识是通过 主键 (id是其名字) 】,其中id必须为整数。
2)关于 转换器
形如:< int : pk > ,其中 int 是转换器
a. 转换器类型
-
str 匹配除了路径分隔符 '/' 之外的所有字符串,如果不写转换器,默认就是字符串转换器
-
int 匹配0或任何正整数
-
slug 匹配任意的ASCII字符或数字组成的slug字符串,连字符和下划线
-
path 匹配任何非空字符串,包括路径分隔符 ‘/’
b.匹配一个参数情况
c.匹配多个参数情况
5.使用正则表达式
1)re_path
re_path(route, view, kwargs=None, name=None)
注意:正则表达式匹配的参数,都会转化成字符串
6.url命名
1)重定向
a.实例一:
b.实例二: