路由分配及模板渲染
-1.路由系统
url:全球统一定位符 即网址
作用: 用来标识互联网上资源的地址
- URLconf模块 urls.py项目文件加下的文件叫根配置文件
path(route,view,kwargs=None,name=None)
- route是一个字符串url规则
- view是一个视图
- kwargs额外的参数,是一个字典
- name url规则名字
crm获取某个学生的详情 数据库 主键id
转换器:
- str匹配除了路径分隔符‘/’之外的所有字符,如果不写转换器,默认输出的只是字符串
- int匹配0或任何整数
- slug匹配任意的ASCLL字符或数字组成的slug字符串,连字符和下划线
- path匹配任何非空字符串和,路径分隔符‘/’
使用正则表达式
re_path(route,view,kwargs=None,name=None)
基本应用:
1.path(‘detail//’, views.detail) url中传递参数
2.路径转换器:<转换器:变量名>
3.path(‘detail/int:year-int:month-int:id/’, views.detail),
path(‘detail/int:year/int:month/int:id/’, views.detail),
注意:正则表达式匹配到的参数都是字符串,即
re_path(r’student/(?P\d{4})-(?P\d[0-9]|1[0-2])-(?P\d+)/’, views.student),
incloud:kwargs的作用:
name的作用:
return redirect(reverse(‘index’)) # 动态解析url路径
导入redirect
from django.shortcuts import redirect
重定向
return redirect(reverse(‘teacher:index’)) # app_name:name
路由系统原理
1.根URLconf,从上往下找,第一个匹配到的路径,映射到对应的视图函数
2.根URLconf,include到app的URLconf,从上往下找,第一个匹配到的路径,映射到对应的视图函数
3.都找不到,返回页面404
**模板(templates)系统的基本操作:
django**模板渲染(render)**方式:
return render(request, ‘teacher/index.html’)
在crm/views环境下导包
from django.templates.leader import get_templates