一、普通路由配置
1.利用PyCharm创建工程名为mysite的Django项目,在mysite文件上新建views.py视图文件,如下图示:
2.在urls.py文件中导入view.py视图文件
from . import views
3.在urls.py文件中添加新的路由,如下图示:
urlpatterns = [path('admin/', admin.site.urls),# 新添加路由# http://127.0.0.1:8000/indexpath('index', views.viewTest),# http://127.0.0.1:8000/path('', views.viewMainPage),# http://127.0.0.1:8000/page/1path('page/1', views.viewPage1),
]
4.在views.py视图文件中添加以下代码:
from django.http import HttpResponsedef viewTest(request):return HttpResponse('Hello Django')def viewMainPage(request):html = """<h4>这是我的网站首页</h4><a href="http://www.datutusuibi.com/" target="_blank">大土土随笔</a>"""return HttpResponse(html)def viewPage1(request):html = "这是编号为1的页面"return HttpResponse(html)
5.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/index
,效果如下:
在浏览器地址栏输入http://127.0.0.1:8000/page/1
,效果如下:
在浏览器地址栏输入http://127.0.0.1:8000/
,效果如下:
单击衔接,可以跳转到我的个人博客
二、使用path转换器进行路由配置
path转换器:
1).语法:<转换器类型:自定义名>
2).作用:若转换类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数。
3).例子:path('page/<int:num>',views.xxx)
【常用path转换器类型】
1.在urls.py文件中添加新的路由,如下图示:
urlpatterns = [path('admin/', admin.site.urls),# 新添加的路由# http://127.0.0.1:8000/page/整数 其中整数取值2-100path('page/<int:num>', views.viewPageNum),# http://127.0.0.1:8000/整数/操作符/整数path('<int:num1>/<str:op>/<int:num2>', views.viewCal),
]
2.在views.py视图文件中添加以下代码:
def viewPageNum(request, num):html = f"这是编号为{num}的页面!"return HttpResponse(html)def viewCal(request, num1, op, num2):if op not in ['add', 'sub']:return HttpResponse("你的操作符输入错误!")if op == 'add':result = num1 + num2else:result = num1 - num2html = f"计算结果为{result}"return HttpResponse(html)
3.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/page/80
,效果如下:
4.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/100/add/200
,效果如下:
三、使用re_path转换器进行路由配置
re_path转换器:
1).在url的匹配过程中可以使用正则表达式进行精准匹配
2).语法:re_path(reg,view,name=xxx)
正则表达式为命名分组模式(?P<name>pattern)
匹配提取参数后用关键字传参方式传递给视图函数。
3).样例:
可匹配http://127.0.0.1:8000/30/add/60
不可匹配http://127.0.0.1:8000/300/add/600
1.在urls.py文件中添加新的路由,如下图示:
from django.contrib import admin
from django.urls import path, re_path
from . import viewsurlpatterns = [path('admin/', admin.site.urls),# http://127.0.0.1:8000/整数/操作符/整数re_path(r'^(?P<num1>\d{1,2})/(?P<op>\w+)/(?P<num2>\d{1,2})$', views.viewCal2),
]
2.在views.py视图文件中添加以下代码:
from django.http import HttpResponsedef viewCal2(request, num1, op, num2):if op not in ['add', 'sub']:return HttpResponse("你的操作符输入错误!")if op == 'add':result = int(num1) + int(num2)else:result = int(num1) - int(num2)html = f"计算结果为{result}"return HttpResponse(html)
3.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/30/add/60
,效果如下:
如果本文对您有所帮助,请关注微信公众号“捷创源科技”!