django path - 封装正则 自动转换类型

django2.0版的path中

规则

- 使用尖括号<>从url中捕获
- 语法:<内置匹配器:自定义名> 自定义名传给视图内,request后

封装了5种匹配方法

常用

语法匹配规则
str默认:匹配除了路径分隔符(/)之外的非空字符串
int匹配正整数,包含0
slug匹配字母、数字以及横杠、下划线组成的字符串
uuid匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00
path匹配任何非空字符串,包含了路径分隔符 问号不包含

例子

from django.urls import path  
from . import views  # 导入视图路径
urlpatterns = [  
    path('articles/2003/', views.special_case_2003), 

    # 匹配int类型,views内接request后 接收一个int类型 
    path('articles/<int:year>/', views.对应函数1),   
    # 匹配int类型,views内接request后 接收两个int类型 
    path('articles/<int:year>/<int:month>/', views.对应函数2),
     # 匹配int类型,views内接request后 接收两个int类型 和 一个匹配字符-数字等的字符串  
    path('articles/<int:year>/<int:month>/<slug>/', views.对应函数3),  
]

就自定义!!!

建议单独建一个 urlconvert.py (url转换器) 单独建一个py文件存放自定义的

1. 先建一个py文件内写入规则
2. 在urls中注册第一步的路径方法
3. 正常引用

单独的py文件内:

class MonConvert:   # 自定义名
    regex = '[0-9]{2}'  # 正则规则
    # 【下面两个必须这样写!!!!!】
    def to_python(self, value):  
        return int(value)  
    def to_url(self, value):  # 反向解析
        return '%04d' % value

urls中引用注册自定义模版

# 要引入注册自定义匹配膜拜模块
from django.urls import register_converter
import MonConvert

register_converter(MonConvert, 'mm')  # mm取的名字,无所谓,后面引用这个名字匹配正则即可
urlpatterns = [   
    path('articles/<mm:year>/', views.路径),  
    ...  
]
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django中使用django-simple-captcha生成验证码可以通过以下步骤现: 1. 安装django-simple-captcha库: 在终端中运行以下命令安装django-simple-captcha库: ``` pip install django-simple-captcha ``` 2. 在Django项目的`settings.py`文件中添加`captcha`应用: 打开`settings.py`文件,找到`INSTALLED_APPS`列表,将`'captcha'`添加到其中。 3. 运行数据库迁移: 在终端中运行以下命令,将`captcha`应用的数据库迁移到你的项目中: ``` python manage.py migrate captcha ``` 4. 在需要生成验证码的表单中添加验证码字段: 在你的表单类中导入`CaptchaField`,并将其作为一个字段添加到表单中。例如: ```python from captcha.fields import CaptchaField class MyForm(forms.Form): # 其他字段... captcha = CaptchaField() ``` 5. 在视图函数中验证验证码: 在你的视图函数中,可以通过调用`form.is_valid()`来验证验证码是否正确。例如: ```python def my_view(request): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): # 验证码正确,执行相应的逻辑 # ... else: # 验证码错误,处理错误信息 # ... else: form = MyForm() return render(request, 'my_template.html', {'form': form}) ``` 6. 在模板中显示验证码输入框: 在你的模板文件中,可以通过`form.captcha`来渲染验证码输入框。例如: ```html <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">提交</button> </form> ``` 这样,你就可以在Django中使用django-simple-captcha生成验证码了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值