美文网首页
Django-视图中转换器的使用

Django-视图中转换器的使用

作者: 测试探索 | 来源:发表于2022-09-10 15:20 被阅读0次

对参数的校验,第一种方式,在视图函数中,通过编写正则的方式进行验证,不具备复用性。第二种方式,转换器,复用性较强,也可以自定义转换器

第一种方式:视图函数中,编写正则

book/views.py中

from django.shortcuts import render
from django.http import HttpResponse
from book.models import BookInfo
import json,re

# Create your views here.

def create_book(request):
    book = BookInfo.objects.create(
        name = 'abc',
        pub_data = '2000-1-1',
        readcount = 10
    )
    return HttpResponse('create')


def shop(request,city_id,mobile):
    # 获取url传过来的参数
    # <QueryDict: {'order': ['readcount'], 'page': ['1']}>
    # QueryDict具有字典的特性,还具有一键多值
     if not re.match('\d{5}',mobile):
         return HttpResponse("没有此商品")

    query_params = request.GET
    print("query_params",query_params)
    order = query_params.getlist("order")
    print("order的请求参数为:",order)
    return HttpResponse('齐哥的饭店')

第二种方式,转换器的使用

book/urls.py

from django.urls import path
from book.views import create_book,shop,register,jsons
from django.urls import converters
from django.urls.converters import register_converter

# 第一步.定义转换器
class MobileConverter:
    # 验证数据的关键是:正则
    regex = '1[3-9]\d{9}'

    # 验证没有问题的数据,给视图函数
    def to_python(self, value):
        return value

    # def to_url(self, value):
    #     # 将匹配结果用于反向解析传值时使用
    #     return value

# 第二步.注册转换器,才能在第三步中使用
# 参数讲解
#converter :转换器类
#type_name :转换器名字
register_converter(MobileConverter,'phone')


urlpatterns = [
    path('create/',create_book),
    # <转换器名字:变量名>
    # 转换器会对变量数据进行正则验证
    # 第三步,使用
    # int为系统自带转换器,python为自定义编写的转换器
    path('<int:city_id>/<phone:mobile>/',shop),
    path('register/',register),
    path('json/',jsons),
]
接口请求,验证成功

相关文章

  • Django-视图中转换器的使用

    对参数的校验,第一种方式,在视图函数中,通过编写正则的方式进行验证,不具备复用性。第二种方式,转换器,复用性较强,...

  • django-创建视图

    如下: 进去到app里面看下目录结构如下: 其中最后一行views.py是我们真正写代码的地方,也就是传说中的视图...

  • Django-类视图

    一、思考 如何在一个视图中处理get和post请求 二、类视图使用 在Django中也可以使用类来定义一个视图,称...

  • [PPJ_17] RESTful接口测试脚本备份

    接前文:[1] Django-数据库配置、数据序列化、视图创建、URL路由配置、API编辑操作[2] Django...

  • 2018-04-27

    Django-删除Mysql数据表数据操作 1. 单条数据删除操作 1.1 views视图操作 1.2配置当前应...

  • Flask05.自定义类型转换器

    创建转换器 将转换器添加到路由转换器字典 使用转换器

  • SpringMVC: 消息转换器-HttpMessageConv

    消息转换器-HttpMessageConverter 概述 在springMVC中,可以使用@RequestBod...

  • 类似图/中间键

    在Django中也可以使用类来定义一个视图,称为类视图。使用类视图可以将视图对应的不同请求方式以类中的不同方法来区...

  • 简单浅谈SwiftUI

    构建了一个简单的货币转换器来试验SwiftUI的状态驱动的视图更新。 今天我们将开始构建我们的第一个使用Swift...

  • Django-视图之HttpResponse对象

    可以使用from django.http import HttpResponse来构造响应对象。 也可通过Http...

网友评论

      本文标题:Django-视图中转换器的使用

      本文链接:https://www.haomeiwen.com/subject/jrytortx.html