Django路由管理

Django中的路由管理 urls.py

1、普通路由

path(router, view , kwargs, name)

  • router : 定义路由,路由在定义的时候,不能以 / 开头
  • view : 对应的是一个视图函数, 函数在定义的时候,要求必须提供request参数,必须返回response
  • kwargs : 给视图传递额外的参数,格式是一个字典
  • name : 给路由起一个名字、可以实现反向解析

2、参数路由

`path('detail/<id>', view)`, id 默认的类型是 str 

可以使用类型转换器,转换参数的类型 

django 中 内置的 类型转换器

  • str: 匹配 除 / 之外的所有字符串
  • int: 只能匹配数字
  • path:匹配除换行符之外的所有字符串
  • slug: 只能匹配 字母、数字、下划线、中划线 组成的字符串
  • uuid: 只能匹配 UUID格式的字符串

django 中 自定义 类型转换器

  • 新建 converters.py 文件
  • 编写一个类
	class YYYYConverter:
	
		regex = "(19|20)\d{2}"
		
		def to_python(self, value):
			return int(value)

		def to_url(self, value):
			return str(value)
  • urls.py 中注册类型转换器
	from django.urls.converters import register_converter
	
	from . import converters 
	
	register_converter( converters.YYYYConverter , 'yyyy' )
	

  • 在路由管理中使用 自定义的类型转换器

    path('<yyyy:year>', ...)

3、正则路由

如果使用正则路由,则不能使用 path 函数
要想使用正则路由 ,则需要使用 url 函数 或者 re_path 函数

django.urls import re_path

django.conf.urls import url

url(r"正则表达式", 函数)

一般匹配简单的操作,复杂的操作,推荐使用
url('index/(?P<id>[0-9]+)', view)

4、分布式路由


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值