Django后端开发——路由配置(二)path转换器


参考资料

达内教育django开发课程
(本文为看达内教育网课学习后端基础知识的自用笔记)


path转换器

Django后端开发——路由配置(一)中,http://127.0.0.1:8000/page/1 和 http://127.0.0.1:8000/page/2 分别对应着第1页和第2页。如果需要100个同样的网页,可以按照同样的方法进行定义和配置,可是过于冗余,失去了程序设计的精髓,在此引入path转换器。
在这里插入图片描述

url.py中引入path转换器

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
    path('admin/', admin.site.urls),

    #http://127.0.0.1:8000/page/2003
    path('page/2003/', views.page_2003_view),

    #path('page/2003/', views.page_2003),

    #http://127.0.0.1:8000/
    path('',views.index),
    #http://127.0.0.1:8000/page/1
    path('page/1', views.page_1_view),
    #http://127.0.0.1:8000/page/2
    path('page/2', views.page_2_view),
    #http://127.0.0.1:8000/page/3~n
    path('page/<int:pg>',views.pagen_view)
]

添加部分:

    #http://127.0.0.1:8000/page/3~n
    path('page/<int:pg>',views.pagen_view)

接收一个int型的整数pg——int:pg
交由views.pagen_view处理(稍后在views.py中进行定义)

views.py中引入path转换器

from django.http import  HttpResponse

def page_2003_view(request):
    html = "<h1>this is the first page</h1>"
    #<h1>是控制字体大小的
    return HttpResponse(html)

def index(request):
    html = '这是首页'
    return HttpResponse(html)
def page_1_view(request):
    html = '这是第1页'
    return HttpResponse(html)

def page_2_view(request):
    html = '这是第2页'
    return HttpResponse(html)

def pagen_view(request,pg):
    html = '这是第%s页'%(pg)
    return HttpResponse(html)

添加部分:

def pagen_view(request,pg):
    html = '这是第%s页'%(pg)
    return HttpResponse(html)

对pagen_view进行定义,传入参数增加了整数pg——def pagen_view(request,pg):
网页显示可以用%d,也可以用%s,%s适用范围更广

注:路由从上到下逐一比对,一旦匹配成功不再向下寻找。也就是说,page1在前面已经匹配成功,虽然1也是整数,但是不会有1作为参数pg进行传递的情况。


练习:小计算器

在这里插入图片描述

在url.py中进行修改添加

添加内容:

#http://127.0.0.1:8000/整数/操作符/整数
path('<int:n>/<str:op>/<int:m>',views.cal_view)

在views.py中进行修改添加

添加内容:

def cal_view(request,n,op,m):
    if op not in ['add','sub','mul']:
        return HttpResponse('your op is wrong')
    result=0
    if op=='add':
        result=n+m
    elif op=='sub':
        result=n-m
    elif op=='mul':
        result=n*m
    return HttpResponse('结果为:%s'%(result))

效果

在这里插入图片描述


总结

本文介绍了path转换器,让网页的处理更加灵活便捷。
可以通过本节内容,更好地掌握url.py与views.py的对应关系,以及路由配置的处理机制。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^_^2412

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值