路由系统
URL :全球统一资源定位符是可以从互联网上得到资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么去处理它。 (其实就是网址)
URL的引入
URL格式:
Django路由系统
URLconf模块 urls.py
项目文件夹下的叫根配置文件
然后在 urls.py
里映射这个views
当有一个请求来的时候如果它的路径为index,将会的匹配到views视图的index_views函数。
path 可以接受的参数(routo,view,kwargs=None,name=None)
只匹配路径
- routo :是一个字符串,代表url规则
- view :是一个视图
- kwargs :额外的参数,是一个字典
- name :url规则的名字
在url中捕获参数
用<>将参数包住 :<pk>
<>代表捕获参数
转换器
- str :匹配除了路径分隔符 ‘/’ 之外的所有字符串,如果不写这个转换器默认就是字符串转换器。
- int :匹配0和任何正整数
- slug :匹配任意的ASCII字符或数字组成的slug字符串,连字符和下划线
- path :匹配任何非空字符串,包括路径分隔符 ‘/’
多个参数操作
使用正则表达式
注意:正则表达式匹配的参数都会转换成字符串
re_path :可以接受的参数(routo,view,kwargs=None,name=None)
- routo :是一个字符串,代表url规则
- view :是一个视图
- kwargs :额外的参数,是一个字典
- name :url规则的名字
include方法
表示凡是以 teacher/
开头的路径都会映射teacher.urls
他会把teacher
之前的部分截取,把teacher之后的部分拿到 include
所包含的teacher.urls
里面去匹配
可以有多层
kwargs
视图函数要有kwargs里面所拥有的参数
kwargs放到这表示kwargs里面的每一个参数都将传到includ映射的每一个视图,每一个视图都必须要有kwargs里面所拥有的参数
当url中的参数和额外参数起了冲突时以额外参数为准
url命名
重定向 redirect
转到百度
————————————————————————————————————————————————
访问login视图
跳转到index视图
如果有很多视图
reverse
给这个url添加个name
导入reverse方法拿到这个视图的url
为了避免不同app用了相同视图名,在每个app的url模块下设置一个变量等于你的应用名
解析的时候要在reverse里加上app的名字
模板系统
把模板路径放到哪里
新建一个名为 templates
的文件夹
Django就会到这里查找我们的模板文件
然后在templates里在创建一个和app同名的文件夹
再到这个文件夹下创建一个html
在views里渲染HTML
更好的优化方法