def login_ajax(request):
if request.method == "GET":
return render(request, 'login_ajax.html')
elif request.method == "POST":
ret = {'status': True, 'error':None, 'data': None}
obj = LoginForm(request.POST)
if obj.is_valid():
print(obj.clean())
else:
# 方式一
# res_str = obj.errors.as_json() # res_str是一个字符串
# ret['status'] = False
# ret['error'] = res_str
# 两次反序列化
# 方式二:
ret['status'] = False
ret['error'] = obj.errors.as_data() # # {'user': [ValidationError(['用户名长度不能小6'])], 'email': [ValidationError(['邮箱格式错误'])]}
# # 一次反序列化
return HttpResponse(json.dumps(ret,cls=JsonCustomEncoder)) from django.core.validators import ValidationError
class JsonCustomEncoder(json.JSONEncoder):
def default(self, field):
if isinstance(field, ValidationError):
return {'code': field.code, 'message': field.message}
else:
return json.JSONEncoder.default(self, field)

Python json.dumps 自定义序列化操作的更多相关文章

  1. Python json.dumps 特殊数据类型的自定义序列化操作

    场景描述: Python标准库中的json模块,集成了将数据序列化处理的功能:在使用json.dumps()方法序列化数据时候,如果目标数据中存在datetime数据类型,执行操作时, 会抛出异常:T ...

  2. python json.dumps() 中文乱码问题

    python json.dumps() 中文乱码问题   python 输出一串中文字符,在控制台上(控制台使用UTF-8编码)通过print 可以正常显示,但是写入到文件中之后,中文字符都输出成as ...

  3. python SQLAlchemy对象映射和json.dumps无法序列化问题解决

    from flask import Flask from flask_sqlalchemy import SQLAlchemy import Config2 import pymysql import ...

  4. python json.dumps() json.dump()的区别

    以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些.如果还有不好的地方,欢迎指出. 首先说明基本功能: dumps是将dict转化成s ...

  5. python json.dumps()函数输出json格式,使用ensure_ascii参数对中文输入的支持

    在python使用过程中,输入中文,不能正常的输出,可以使用ensure_ascii参数来解决不能输入中文的问题 代码块: import json friends={"name": ...

  6. python json.dumps中ensure_ascii的使用,load与loads的区别

    json模块最常用的两个功能: 一:json.dumps(),用于将dict拆分成str格式,称为序列化,注意序列化后,虽然print出来仍然显示的字典的样子,但是此时已经是str类型了. 其中,有时 ...

  7. gson中TypeAdapter实现自定义序列化操作

    最近在项目中遇到这么一个问题,我们后台需要向前端返回一个 json 数据,就是将一个地理位置对象以json的格式返回到前台,但是这个地理位置对象中的经纬度是Double数据类型,项目中规定,如果经纬度 ...

  8. [转]python json.dumps 中的ensure_ascii 参数引起的中文编码

    本文转自: 梁小白博客(http://biangbiang.cnblogs.com) 在使用json.dumps时要注意一个问题 >>> import json >>&g ...

  9. python json.dumps 中的ensure_ascii 参数引起的中文编码问题

    在使用json.dumps时要注意一个问题   >>> import json >>> print json.dumps('中国') "\u4e2d\u5 ...

随机推荐

  1. Javascript 继承和多态

    近期通过一些巧合 或者说 思想转变吧 ... 想通过blog && 公众号 (个人公众号: KeepinJS)去记录自己的Javascript深度学习的内容,从而达到 进一步的自我提升 ...

  2. loadrunner-关联

    1.什么是关联? 将服务器动态返回的值,保存成一个参数,供后面需要使用到 此参数的地方使用 PS:1.一定是服务器返回的 2.动态变化的,静态不需要关联 3.服务器需要校验的 4.保存成一个参数 5. ...

  3. 创建windoes 硬盘 挂载u盘

    一,创建 windows 硬盘 创建 2,我的电脑右击鼠标,计算机管理 3.同理执行,在linux 下创建虚拟磁盘 选择路径为之前存放 windows 系统路径 之后 mount  /dev/sdc ...

  4. SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介、创建消息生产者、创建消息消费者、自定义消息通道、分组与持久化、设置 RoutingKey)

    1.概念:SpringCloudStream 2.具体内容 2.1.SpringCloudStream 简介 SpringCloudStream 就是使用了基于消息系统的微服务处理架构.对于消息系统而 ...

  5. react源码第一天

    1.下载源码:github 16.7版本 2.找到笔记:https://react.jokcy.me/book/api/react.html#

  6. airflow笔记

    airflow webserver --debug &  # debug 模式,在后台启动webserver airflow list_dags airflow list_tasks tuto ...

  7. Ontology理论研究和应用建模

    转自:https://www.cnblogs.com/yes-V-can/p/8151275.html 目录 1 关于Ontology 1.1 Ontology的定义 1.2 Ontology的建模元 ...

  8. c++常见变量的极值

    #include "numeric_limits.hpp"#include <limits>#include <iostream> //////////// ...

  9. Install Oracle Tuxedo in silent mode

    在我的工作中,Tuxedo通常是和PeopleSoft一起出现的. 下面总结不同版本Tuxedo静默(silent)安装的方法,方便提高我们部署系统的效率. Tuxedo 12.1.3 1. repo ...

  10. R语言-饼图

    1.饼图 > browsers<-read.table("browsers.txt",header=TRUE) > browsers<-browsers[o ...