Django(5)-路由配置实例

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的页面
Django(5)-路由配置实例_第1张图片

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后面的数字就可以随便填写了,如:
Django(5)-路由配置实例_第2张图片

4、路由配置实例演示二

4.1、需求:小计算器
  • 定义一个路由格式为:http://127.0.0.1:8080/整数/操作符字符串[add/sub/mul]/整数
  • 从路由中提取数据,做相应的操作后返回给浏览器
  • 效果如下:http://127.0.0.1:8080/100/add/200 页面显示:结果:300
4.2、设计路由

Django(5)-路由配置实例_第3张图片

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,可以得到如下结果
Django(5)-路由配置实例_第4张图片

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、设计路由

此时需要使用到正则路由转换器
Django(5)-路由配置实例_第5张图片

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,结果如下,符合要求
Django(5)-路由配置实例_第6张图片
在浏览器输入:http://127.0.0.1:8080/100/add/200,结果如下:
Django(5)-路由配置实例_第7张图片

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函数
Django(5)-路由配置实例_第8张图片

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,结果如下:
Django(5)-路由配置实例_第9张图片
在浏览器输入:http://127.0.0.1:8080/birthday/12/06/2015,结果如下:
Django(5)-路由配置实例_第10张图片

你可能感兴趣的:(Django,python,django)