Django基础-----Django路由系统

路由系统

1、路由系统基本格式

urlpatterns = [
path( 要匹配的路径(可以是正则表达式), 视图函数, 参数, 别名)
]

2、参数说明

(1) 正则表达式:一个正则表达式字符串
(2) 视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
(3) •参数:要传递给视图函数的默认参数(字典形式,可选)
(4) •别名:一个可选的name参数

3、正则表达式详解

(1) 在python中使用 re_path模块来写正则表达式
(2) 正则表达式的开始使用“^”表示。
(3) 正则表达式的结束使用“$”表示。
(4) “r” 元字符串 防止正则表达式中的转义。
练习:正则路径:
在导入路径之前先在urls.py文件中导入正则路径模块:

from django.urls import path,re_path

然后在urls.py文件中创建路径:

urlpatterns = [
	re_path(r'^lw4$',views.lw4)
]

在views.py文件中定义视图函数:

def lw4(request):
    return render(request,'lw4.html')

在创建lw4.html文件:
在这里插入图片描述

4、正则表达式分组及分组命名匹配

(1) 分组匹配:
正则表达式分组匹配是通过小括号”()”来捕获URL中的值并以位置参数形式传递给视图。
在urls.py文件中创建路径:

urlpatterns = [
		re_path(r'^lw6/(\d+)/',views.lw6),#\d表示任意数字,+表示至少出现一次。
	]

在views.py文件中定义视图函数:

def lw6(request,num):
    """

    :param request:
    :param num: 接受urls传递过来的参数
    :return:
    """
    print(num)
    print(type(num))
    return render(request,'lw6.html')

注意:视图函数接受的是内容时字符串类型。

再创建自己的lw6文件。
运行后,下图的两个路径都可以打开lw6.html的内容:
在这里插入图片描述
因为正则匹配了路径后可匹配任意数字。

(2) 分组命名匹配:
分组命名正则表达式组的语法是(?Ppattern),
其中name是组的名称,pattern是要匹配的模式。
捕获的值作为关键字参数而不是位置参数传递给视图函数。
例:
在urls.py文件中创建路径:

urlpatterns = [
			re_path(r'^lw7/(?P<year>[0-9]{4})/$',views.lw7)
		]

在views.py文件中定义视图函数:

def lw7(request,year='2019'):
    print(year)
    return render(request,'lw7.html',{'year':year})

不给year传参的时候,year返回的就是默认值2019,传参时就是传入浏览器的那个值。
在创建lw7.html文件:
在这里插入图片描述
7、Url反向代理(别名)
使用url反向代理,解决硬编码问题。
在urls.py文件中创建路径:

urlpatterns = [
	re_path(r'^lw9$',views.lw9),
    re_path(r'^lw10$',views.lw10),
    re_path(r'^lw11$',views.lw11,name='changePage')
  ]

在views.py文件中定义视图函数:

def lw9(request):
    return render(request,'lw9.html')


def lw10(request):
    return render(request,'lw10.html')
    
def lw11(request):
return render(request,'lw11.html')

创建两个html文件:
在lw9.html中创建超链接,第一个是直接使用另一个文件名作为链接,第二个是使用文件的别名来实现跳转。使用别名的好处是改变链接文件名的时候,依然可以跳转到此页面不用再在lw9.html中修改路径。
在这里插入图片描述
创建lw10.html文件:
在这里插入图片描述
创建lw11.html文件:
在这里插入图片描述
在浏览器里先打开lw9,点击相应的超链接就可以转到响应的html页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值