wkt blog

  • About
  • About

Month: April 2018

wtforms的调用验证方式优化

by admin/April 28, 2018July 19, 2018/flask, 常用备份, 笔记

通常, 在使用flask验证器的过程中视图会有类似下面的语句: data = request.json form = ClientForm(data=data) if form.validate(): #… else: #… 重写的目的: 无需每次在视图中使用data=reqeust.data, form = XXForm(data=data)获取和传入请求数据. 无需在视图中使用ifelse判断, 请求数据有问题时候, 直接向客户端返回异常. 分析: 为了省去视图函数向验证器每次传数据的过程, 重写构造器的时候可以直接使用request.data获取; 为了直接返回异常, 需要重写validate, 此处我们不重写, 直接定义一个类似的方法, 去调用validate. from flask import request from wtforms import Form # 这是之前定义的参数错误异常处理类 from […]

python多线程高级锁condition

by admin/April 6, 2018July 19, 2018/python基础

多线程编程中如果使用Condition对象代替lock, 能够实现在某个事件触发后才处理数据, condition中含有的方法: – wait:线程挂起,收到notify通知后继续运行 – notify:通知其他线程, 解除其它线程的wai状态 – notifyAll(): 通知所有线程 – acquire和release: 获得锁和解除锁, 与lock类似, – enter和exit使得对象支持上下文操作: def __enter__(self): return self._lock.__enter__() def __exit__(self, *args): return self._lock.__exit__(*args) 代码: import threading from threading import Condition # condition class XiaoAi(threading.Thread): def __init__(self, cond): […]

jsonify的改进

by admin/April 3, 2018July 19, 2018/flask, 常用备份, 笔记

一. json和jsonify 二. 改进的jsonify 三. 使用 一. json和jsonify json.dumps需要指定返回类型: t = { #… } return Response(json.dumps(t), mimetype=’application/json’) jsonify默认将返回的类型指定成了application/json : t = { #… } return jsonify(t), 200 但是在使用默认情况下, jsonify对于很多类型的数据是无法序列化的(当然json.dumps也不行), 比如时间类型的字典, model的实例对象. 二. 改进的jsonify 如果jsonify不知道如何序列化指定的对象, 程序便会调用JSONEncode的defualt方法: # 源码部分 class JSONEncoder(_json.JSONEncoder): def […]

上下文管理器类和上下文管理器装饰器

by admin/April 1, 2018July 19, 2018/python基础, 其他, 笔记

一. 什么是上下文管理器 二. 自定义一个上下文管理器类: 三. 使用contextmanager 四. 一个例子, sqlalchemy: 数据库的自动提交和回滚 一. 什么是上下文管理器 上下文管理器是在Python2.5之后加入的功能,可以在方便的需要的时候比较精确地分配和释放资源, with便是上下文管理器的最广泛的应用, 比如: with open(“test/test.txt”,”w”) as f: f.write(“hello”) 这上会比使用try:…finally:f.close方便的多. 二. 自定义一个上下文管理器类: class MyResource: # __enter__ 返回的对象会被with语句中as后的变量接受 def __enter__(self): print(‘connect to resource’) return self def __exit__(self, exc_type, exc_value, tb): […]

Recent Posts

  • Create a virtual serial port that relays data over ssh
  • 在ssh服务器上创建代理, 使所有流量经过ssh客户端
  • linux:将目录里的软连接替换为原始文件
  • IntelliJ Idea: How to open project from the network share
  • Run batch file as a Windows service

Archives

  • December 2021
  • September 2021
  • July 2021
  • June 2021
  • December 2020
  • November 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • January 2019
  • December 2018
  • November 2018
  • September 2018
  • August 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • November 2017
  • October 2017
  • September 2017
  • June 2017
  • May 2017
  • April 2017
  • April 2016

友情链接

  • Harttle
  • 张俊杰的微博客
  • 蔣振飞的博客
  • 饲养员的窝
Proudly powered by WordPress | Theme: ShowMe by NEThemes.