首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flask前后端分离实践:Todo App(2)

那么使用前后端分离以后,所有对后端的请求都是以Ajax的方式发送,上面的方法依然有效!区别仅仅在于,我们将请求改成JSON格式之后,后端是从request.get_json()中获取的。...表单与验证 现在我们需要一个包含表单的登录页面,而我们知道,所有的页面都是前端渲染。所以这里wtform或flask-boostrap就不太能派上用场了。好在表单也比较简单,不是很难写。...我们需要写一个提交的函数,绑定到表单的submit动作上: Javascript methods: { checkForm (e) { e.preventDefault() const vm...后端验证这一块,由于没有渲染需求了,可以不用wtform这一套,改用marshmallow,但为了后面的方便,我还是使用了Flask-WTF,把验证放到表单类里。...后端的验证,通过响应内容传回错误。 验证错误通过Vue-flash-message显示到页面上。 login和register的视图函数仅处理POST请求。

1.3K10

发现一款功能强大的 Python 组件 FlaskForm

它在 Flask-WTF 的基础上扩展并添加了一些随手即得的精巧的帮助函数, 这些函数将会使在 Flask 里使用表单更加有趣。...Part2:WTForm 支持的字段与验证器 WTForms 支持 HTML 字段: 1.字段类型说明 StringField—文本字段, 相当于 type 类型为 text 的 input 标签 TextAreaField...,值为 datetime.datetime 格式 IntegerField—文本字段,值为整数 DecimalField—文本字段,值为 decimal.Decimal 格式 FloatField—文本字段...可以支持很多表单的验证函数: 验证函数说明 Email—验证是电子邮件地址 EqualTo—比较两个字段的值;常用于要求输入两次密钥进行确认的情况 IPAddress—验证 IPv4 网络地址 Length...—验证输入字符串的长度 NumberRange—验证输入的值在数字范围内 Optional—无输入值时跳过其它验证函数 DataRequired—确保字段中有数据 Regexp—使用正则表达式验证输入值

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从入门到_精通_Django REST Framework-(二)

    高精度十进制数处理(适合金额) price =DecimalField(max_digits=10, decimal_places=2)SlugField Slug 格式字符串...字段特有参数:如 allow_blank(仅字符串字段)、min_value(仅数值字段)最佳实践使用 read_only/write_only 分离输入输出逻辑通过 error_messages 提升错误信息的可读性结合...数据验证5.1 三层验证机制字段级别验证:单个字段的合法性对象级别验证:多个字段的关系检查自定义验证器:可复用的验证逻辑5.2 验证示例class OrderSerializer(serializers.Serializer...检查是否忘记调用 is_valid()确认字段是否被标记为 write_only=TrueQ2: 如何处理部分更新?...prefetch_related 避免 N+1 查询版本控制:为不同 API 版本创建不同的 Serializer文档注释:使用 help_text 参数生成 API 文档

    9500

    Django 定义模型2.1

    定义模型 在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django...=None, decimal_places=None):使用python的Decimal实例表示的十进制浮点数 DecimalField.max_digits:位数总数 DecimalField.decimal_places...,确保它是个有效的image 字段选项 通过字段选项,可以实现对字段的约束 在字段对象时通过关键字参数指定 null:如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False...blank:如果为True,则该字段允许为空白,默认值是 False 对比:null是数据库范畴的概念,blank是表单验证证范畴的 db_column:字段的名称,如果未指定,则使用属性的名称 db_index...:若值为 True, 则在表中会为此字段创建索引 default:默认值 primary_key:若为 True, 则该字段会成为模型的主键字段 unique:如果为 True, 这个字段在表中必须有唯一值

    1.2K30

    经历了源码的痛苦,掌握DRF的核心序列化器

    --序列化器 上一篇介绍了很多有关视图类以及DRF中的APIView执行流程、Request对象的源码分析,源码都get了; DRF的核心当然不是知道视图类执行流程就可以了,DRF框架的核心那就是...序列化器的使用,如何使用序列化器实现 序列化、 反序列化,以及视图,这篇会介绍到~ 序列化器 什么是序列化和反序列化?...),序列化器可以把字典转换成模型存到数据库中 存数据库需要校验,反序列化就可以帮我们完成数据的校验功能 通俗理解为: 响应给前端的内容需要序列化(给前端看),存数据库的数据就反序列化; 序列化:模型对象...allow_null 表明该字段是否允许传入None,默认False validators 该字段使用的验证器(不太用) error_messages 包含错误编号与错误信息的字典 label...,那么自定制返回给前端的字段值就被自定制覆盖了,比如: title = serializers.SerializerMethodField() def get_title(self, obj

    83910

    django_2

    实例表示的十进制浮点数 银行和金融保险,相关的数据 存一个亿 ·参数说明 ·DecimalField.max_digits ·位数总数 ·DecimalField.decimal_places...FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image 上两个字段依赖pillow 字段选项 ·概述 ·通过字段选项,可以实现对字段的约束 ·在字段对象时通过关键字参数指定...·注意 ·null是数据库范畴的概念,blank是表单验证证范畴的 ·db_column ·字段的名称,如果未指定,则使用属性的名称 ·db_index ·若值为 True...(max_digits=None, decimal_places=None) ·使用python的Decimal实例表示的十进制浮点数 ·参数说明 ·DecimalField.max_digits...·如果为True,则该字段允许为空白,默认值是 False ·注意 ·null是数据库范畴的概念,blank是表单验证证范畴的 ·db_column ·字段的名称,如果未指定,则使用属性的名称

    3.6K30

    drf序列化器之反序列化的数据验证

    验证失败,可以通过序列化器对象的errors属性获取错误信息,返回字典,包含了字段和字段的错误提示。...6、小结 is_valid实际上内部执行了三种不同的验证方式: 先执行了字段内置的验证选项 在执行了validators自定义选项 最后执行了validate自定义验证方法[包含了validate_<字段...child=) 选项参数: 参数名称 作用 max_length 最大长度[适用于字符串,列表,文件] min_lenght 最小长度[适用于字符串,列表,文件] allow_blank 是否允许数据的值为空...,如果使用这个选项,则前端传递过来的数据必须有这个属性。...表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称

    2.1K30

    Django模型最佳实践

    将QuerySet的exists()方法的返回值用于if条件。 用DecimalField来存储货币相关数据而不是FloatField。 定义__str__方法。 不要将数据文件放在同一个目录中。...验证 FileField 文件上传字段 FloatField 存储浮点数 ImageField 其他同FileFiled,要验证上传的是不是有效图像 IntegerField 存储32位有符号整数。...存储URL的CharField UUIDField 存储全局唯一标识符 字段属性 通用字段属性 选项 说明 null 数据库中对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时...,是否允许为NULL,默认为False choices 设定字段的选项,各元组中的第一个值是设置在模型上的值,第二值是人类可读的值 db_column 字段对应到数据库表中的列名,未指定时直接使用字段的名称...db_constraint:是否为外键创建约束,默认值为True。

    2.3K40

    python测试开发django-rest-framework-92.DecimalField保留2位小数

    ,可以把商品价格设置DecimalField max_digits=10 整数位的长度为10位 decimal_places=2 小数点后2位 blank=True 允许为空格 null=True...值为12.1 但是查询出来是保留2位小数点 12.10 ?...它必须是 None 或大于等于 decimal_places 的整数。 decimal_places 以数字存储的小数位数。 max_value 验证所提供的数字不大于这个值。...min_value 验证所提供的数字不小于这个值。 localize 设置为 True 以便基于当前区域启用输入和输出本地化。 这也将强制 coerce_to_string 为 True。...请注意,设置 localize 会将值强制为 True。 rounding 设置量化到配置精度时使用的舍入模式。 有效值是 decimal 模块舍入模式。 默认为 None。

    1.4K40

    模型

    IntegerField # 十进制浮点数 , 参数maxdigits表示总位数, 参数decimalplaces表示小数位数 Decimalfield # 浮点数 FloatField # 日期字段...DateTimeField # 上传文件字段 FileField # 继承于FileField,对上传的 内容进⾏行行校验,确保是有效的图⽚片 imageField 字段选项: # 如果为True...,表示允许为空,默认值是False null # 如果为True,则该字段允许为空白,默认值是False blank # 字段的名称,如果未指定,则使用属性的名称 db_column # 若值为True...auto_now_add # (时间字段独有)配置上auto_now=True,每次更新数据记录的时候会更新该字段。...models.PROTECT # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_NULL # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值

    20830

    【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

    字符串,参数max_length表示最大字符个数 TextField 大文本字段,一般超过4000个字符时使用 IntegerField 整数 DecimalField 十进制浮点数, 参数max_digits...继承于FileField,对上传的内容进行校验,确保是有效的图片 5) 选项 选项 说明 null 如果为True,表示允许为空,默认值是False blank 如果为True,则该字段允许为空白,...默认值是False db_column 字段的名称,如果未指定,则使用属性的名称 db_index 若值为True, 则在表中会为此字段创建索引,默认值是False default 默认 primary_key...若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用 unique 如果为True, 这个字段在表中必须有唯一值,默认值是False null是数据库范畴的概念...,blank是表单验证范畴的 6) 外键 在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,在django.db.models中包含了可选常量: CASCADE

    1.4K20

    Web登录认证类漏洞分析防御总结和安全验证机制设计探讨

    ,从而枚举用户名 修复方案:使用模糊的错误提示,如用户名或密码不正确 账号锁定:用户爆破的时候错误次数过多锁定账号,然后黑客批量尝试用户名导致大部分用户名被锁 账号详情泄露:提交合法用户名,服务器返回关于用户名相关的账号...请求,导致验证码认证成功后进行攻击,比如验证码成功后抓到正在的用户名密码的请求进行暴力破解 置空:当验证码的值或者参数置空的时候,可以直接认证,这是服务端逻辑判断少了一个验证码为空的判断 验证码复用:同一个验证码可以不限次数的使用...,或者验证码用完没销毁,导致可以爆破或者任意注册 前端显示:服务端生成的验证码不是图片,而是字符串直接返回到前端 任意值:拦截到http请求,对验证码的值设置任意值都能通过验证码验证 优先级低:同一个http...请求到服务端以后验证码不是最先验证的,比如先验证用户名,导致用户枚举 打码平台:使用打码平台调用验证码接口获取验证码进行识别,返回验证码 修复方案:验证码必须要在服务端生成添加杂点干扰项并足够扭曲以图片格式返回前端...上面重放攻击那么多,什么是对抗重放攻击最有效的手段? 对于可以使用脚本或者程序自动化攻击的,最有效的防御手段就是验证码!! 防御手段有哪些关键点呢? 如何尽可能的避免各种逻辑绕过的漏洞?

    1.9K40

    Django序列化器的简单使用

    反序列化,完成数据的校验功能 为方便理解后面序列化器中的字段,我们先在创建的APP中的models.py 建立一个数据库模型类。...None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称 help_text...验证失败,可以通过序列化器对象的errors 属性获取错误信息,返回字典,包含了字段和字段的错误。...如果是非字段错误,可以通过修改REST framework 配置中的NON_FIELD_ERRORS_KEY 来控制错误字典中的键名。...: model=Book # 对应上models.py中的模型 fields='__all__' model 指明参照哪个模型类 fields 指明为模型类的哪些字段生成

    1.6K40

    小白学Django第三天| 一文带你快速理解模型Model

    模型类的设计和表的生成 了解了ORM的含义,我们来体验一下Django框架中是如何具体运用的: 首先编写一个模型类 ? 这里我们有book_title和book_date两个属性。...渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 使用时需要引入from django.db import models包 AutoField:自动增长的IntegerField,通常不用指定...不指定时Django会自动创建属性名为id的自动增长属性 BooleanField:布尔字段,值为True或False NullBooleanField:支持Null、True、False三种值 CharField...:继承于FileField,对上传的内容进行校验,确保是有效的图片 编写完我们的模型类之后,我们需要生成迁移文件: ?...大家可以看到上图,我们在之前的模型类BookInfo基础上,加了一个People模型类,因为在一本书中可能会出现很多人物。

    1K11
    领券