文章目录
- 参考资料
- path转换器
-
- url.py中引入path转换器
- views.py中引入path转换器
- 练习:小计算器
-
- 在url.py中进行修改添加
- 在views.py中进行修改添加
- 效果
- 总结
参考资料
达内教育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的对应关系,以及路由配置的处理机制。