Django(1)-简介
Django(2)-创建项目及默认项目目录结构介绍
Django(3)-配置文件详解
Django(4)-URL和视图
Django(5)-路由配置实例
Django(6)-请求及响应
Django(7)-Get请求和Post请求
Django(8)-设计模式
Django(9)-模板层简介与入门实例
Django(10)-模板层的变量和标签
Django(11)-模板层的过滤器和继承
Django(12)-url反向解析
Django(13)-静态文件
Django(14)-应用及分布式路由
Django(15)-模型层及ORM介绍
Django(16)-ORM基础字段及选项
Django(17)-ORM创建数据
Django(18)-ORM常用的查询函数详解及实例演示
Django(19)-ORM条件查询
Django(20)-ORM更新操作及实例演示
Django(21)-ORM删除操作及实例演示
Django(22)-ORM中F对象和Q对象
Django(23)-ORM聚合查询和原生数据库操作
Django(24)-admin后台管理设置步骤以及常见样式详解
Django实战技巧(1)-开发测试生产环境配置切换处理技巧
Django实战技巧(2)-git代码仓分支管理技巧
Django实战技巧(3)-项目配置
1、路由配置函数path详解
- path(route,views,name=None),path有三个参数含义如下:
- route:字符串类型,匹配的请求路径
- views:指定路径所对应的视图处理函数的名称
- name:为地址起别名,在模板中地址反向解析时使用
2、path转换器
- 语法:<转换器类型:自定义名>
- 作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递视图函数
- 例子:patb(‘page/int:page’,views.xxx),将page参数对应的值传递给views.xxx视图函数
3、转换器类型:
- str :匹配除/之外的费控字符串
- int:匹配0和任何正整数,返回一个int
- slug:匹配任意有ASCII字母或数字以及连接符和下划线组成的短标签
- path:匹配非空字段,包括路径分隔符/
在实际开发应用中使用比较多的是str和int,另外两个一般不怎么使用
3、路由配置实例演示一
3.1、需求:
- 输入网址 :http://127.0.0.1:8080,在网页中输出:这是我的首页
- 输入网址:http://127.0.0.1:8080/page/1,在网页中输出:这是编号为1的网页
- 输入网址:http://127.0.0.1:8080/page/2,在网页中输出:这是编号为2的网页
- …
- 输入网址:http://127.0.0.1:8080/page/100,在网页中输出:这是编号为2的网页
3.2、规划路由
在urls.py中设计url,利用path转换器,将page后面的数字设置为变量,这样设计两条路由即可,一条路由为首页配置,另一条路由指向page的页面
3.3、实现视图函数
在views.py中实现如下代码:
from django.http import HttpResponse
def index_view(request):
html="这是我的首页"
return HttpResponse(html)
def page_n(request,num):
html=f"这是编号为{
num}的网页"
return HttpResponse(html)
如此,page后面的数字就可以随便填写了,如:
4、路由配置实例演示二
4.1、需求:小计算器
- 定义一个路由格式为:http://127.0.0.1:8080/整数/操作符字符串[add/sub/mul]/整数
- 从路由中提取数据,做相应的操作后返回给浏览器
- 效果如下:http://127.0.0.1:8080/100/add/200 页面显示:结果:300
4.2、设计路由
4.3、实现视图函数
from django.http import HttpResponse
def compute(request,num1,op,num2):
result=0
if op=="add":
result=num1+num2
elif op=="sub":
result=num1-num2
elif op=="mul":
result=num1*num2
else:
result="您输入的op结果非法"
html=f"结果:{
result}"
return HttpResponse(html)
在浏览器输入http://127.0.0.1:8080/100/add/200,可以得到如下结果
5、高级路由配置:re_path()
- 作用:在url的匹配过程中可以使用正则表达式进行精确匹配
- 参数:re_path(reg,view,name=xxx)
- 参数和普通的path没有什么太大区别,区别仅仅在于第一个参数使用正则表达式的方式
- 正则表达式为命名分组模式(?Ppattern),匹配提取参数后用关键字传参方式传递给视图函数
6、路由配置实例演示三
6.1、需求:两位数以内计算器
- 定义一个路由格式为:http://127.0.0.1:8080/整数/操作符字符串[add/sub/mul]/整数,其中两个整数最大为两位数,一位数也可以,超过两位数则不进入此计算器页面
- 从路由中提取数据,做相应的操作后返回给浏览器
- 效果如下:http://127.0.0.1:8080/10/add/20 页面显示:结果:30
- 效果如下:http://127.0.0.1:8080/100/add/200,则提示找不到实现
6.2、设计路由
此时需要使用到正则路由转换器
6.3、实现视图函数
路由函数实现如下,这里需要注意将num1和num2转换为整数
from django.http import HttpResponse
def compute(request,num1,op,num2):
result=0
num1=int(num1)
num2=int(num2)
if op=="add":
result=num1+num2
elif op=="sub":
result=num1-num2
elif op=="mul":
result=num1*num2
else:
result="您输入的op结果非法"
html=f"结果:{
result}"
return HttpResponse(html)
在浏览器输入:http://127.0.0.1:8080/10/add/20,结果如下,符合要求
在浏览器输入:http://127.0.0.1:8080/100/add/200,结果如下:
7、路由配置实例演示四
7.1、需求:输出生日
- 当访问地址如下两种,均能得出生日是xxxx年xx月xx日
- http://127.0.0.1:8080/birthday/四位数字/一到两位数字/一到两位数字
- http://127.0.0.1:8080/birthday/一到两位数字/一到两位数字/四位数字
- 页面输出结果为:生日为:xxxx年xx月xx日
7.2、设计路由
此时需要设计两条路由,利用re_path函数
7.3、实现视图函数
from django.http import HttpResponse
def birthday(request,year,month,day):
html=f"生日为:{
year}年{
month}月{
day}日"
return HttpResponse(html)
在浏览器输入:http://127.0.0.1:8080/birthday/2015/12/06,结果如下:
在浏览器输入:http://127.0.0.1:8080/birthday/12/06/2015,结果如下: