Django内置的url转换器

在写项目中,我们有时候需要规定url传递的参数的种类,这个时候我们就需要用到Django中内置的url转换器了。

编写测试代码:

在项目中的app中的views.py中写入一下代码:

from django.http import HttpResponse

def student_detail(request,student_id):
    text = "该学生的学号是:%s" % student_id
    return HttpResponse(text)

然后在urls.py中写入映射:

from django.urls import path
from book import views

urlpatterns = [
	path('student/<int:student_id>',views.student),
]

再网址中输入一下代码测试

http://127.0.0.1:8000/student/1

效果就自行查看了。
而当我们最后面的参数传入不是一个数字的时候,即输入网址时最后面不是一个int型变量时,我们将访问不到页面的。

Django中除了int还有其他的一些类型转换

我们在urls.py中导入

from django.urls import converters

然后按住ctrl键,单击converters。就会进入到Django中convserters.py这个文件中
在这里插入图片描述
我们可以看到这个文件中有五个类,所以Django中内置的转换器有5种,
Django默认的转换器

IntConverter类

在这里插入图片描述

regex = '[0-9]+'

[0-9] 就是只能0到9的中的整形数字
+ 表示1个或多个

StringConverter类(没有使用转换器的时候默认转换器)

在这里插入图片描述

regex = '[^/]+'

[^] 表示除了后面的东西都可以,即 [^/] 除了 ‘/’ 的都可以

UUIDConverter类

在这里插入图片描述

regex = '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'

[0-9a-f] 表示只能是0到9之间的任意整形数字和a-f 之间的字母,{8} 表示只能有8个这样的字母或者数字。- 即指定了这个字符,必须使用它,整个字符窜的意思就是8个[0-9a-f],后面用一个"-"连接,后面的以此类推

UUID是什么?

SlugConverter类

在这里插入图片描述

regex = '[-a-zA-Z0-9_]'

上面代码的意思是由 == -或a-z或A-Z或0-9或_ == 一个或多个组成的字符窜。

PathConverter类

在这里插入图片描述

regex = '.+'

‘.’ 表示任意字符,所以path可以传递任何字符串,符号等等。

总结

1. str:除了斜杠/以外所有的字符都是可以的。
2. int:只有是一个或者多个的阿拉伯数字。
3. path:所有的字符都是满足的。
4. uuid:只有满足uuid形式的字符串才行。
5. slug:英文中的横杆或者英文字符或者阿拉伯数字或者下划线才满足。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django提供了许多内置的功能模块,这些模块可以帮助开发者更高效地构建Web应用程序。以下是一些常用的Django内置功能模块: 1. django.contrib.admin:提供了一个自动生成的管理后台界面,用于管理和操作数据库中的模型数据。 2. django.contrib.auth:提供了用户认证和授权相关的功能,包括用户注册、登录、注销、密码重置等。 3. django.contrib.sessions:提供了会话管理功能,用于跟踪用户的会话状态。 4. django.contrib.messages:提供了消息传递功能,用于在请求之间传递临时消息。 5. django.contrib.staticfiles:用于管理和提供静态文件(如CSS、JavaScript、图像等)。 6. django.contrib.sitemaps:用于生成网站地图,方便搜索引擎抓取和索引网站内容。 7. django.contrib.gis:提供了地理信息系统(GIS)相关的功能,包括地理数据模型和查询。 8. django.contrib.contenttypes:提供了动态内容类型的支持,允许在运行时创建新的模型类型。 9. django.contrib.redirects:用于管理URL重定向规则,可以将一个URL重定向到另一个URL。 10. django.contrib.humanize:提供了一些人性化的过滤器和标签,用于格式化数据(如日期、时间、文件大小等)。 除了以上提到的模块,Django还提供了很多其他的内置功能模块,涵盖了从视图、表单、模板、数据库等方面的功能。开发者可以根据需求选择和使用这些内置功能模块,以提高开发效率和代码质量。同时,Django也支持通过第三方插件来扩展和增强功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值