wktadmin

not a blog

tmux快捷键速查

Tmux 快捷键 & 速查表 启动新会话: tmux [new -s 会话名 -n 窗口名] 恢复会话: tmux at [-t 会话名] 列出所有会话: tmux ls 关闭会话: tmux kill-session -t 会话名 关闭所有会话:...

2018-07-11 22:36:38

阅读数 193

评论数 0

python多线程高级锁condition

多线程编程中如果使用Condition对象代替lock, 能够实现在某个事件触发后才处理数据, condition中含有的方法: - wait:线程挂起,收到notify通知后继续运行 - notify:通知其他线程, 解除其它线程的wai状态 - notifyAll(): 通知所有线程...

2018-07-11 21:48:15

阅读数 981

评论数 0

socket非阻塞通讯

fd 非阻塞需要多线程编程 服务端 方式1: 使用threading库实现多线程 基本方法和单进程基本写法一致, 将收发部分封装为函数以便开启其他线程: import socket import time import threading def handle_socket(c...

2018-07-06 23:08:51

阅读数 243

评论数 0

python对象转字典的两种方式

一. 方便但不完美的__dict__ 对象转字典用到的方法为__dict__. 比如对象对象a的属性a.name='wk', a.age=18, 那么如果直接将使用a.__dict__获得对应的字典的值为: {name: 'wk', aget:18}, 很方便, 但是也存在一些限制. 其不完美...

2018-07-02 11:57:16

阅读数 6339

评论数 0

flask: 重写HttpException以抛出json类型异常(restful的设计)

http://blog.wktadmin.com 在api的设计中, 无论异常还是正常数据均需要服务器以json的格式返回, 为了对异常的统一管理, 同时为了后续更加方便的返回和验证数据, 我们自定义异常返回类. 设计异常数据的返回格式为: { "error_co...

2018-06-29 08:42:50

阅读数 1067

评论数 6

vim: YouCompleteMe安装过程(简易安装)

YouCompleteMe的安装过程 删除原有的vim配置 rm -rf ~/.vimrc rm -rf ~/.vim clone项目 cd ~ git clone https://github.com/wktadmin/config_files 执行安装文件 作...

2018-06-23 16:24:48

阅读数 652

评论数 0

flask_sqlalchemy: 重写查询方法例子(重写filter_by)

http://blog.wktadmin.com 1. 引出 比如某个项目中, status是逻辑删除的标志, 每次查询都需要加上status=1, Gifts.query.filter_by(uid=current_user.id, isbn=isbn, launched=False, s...

2018-06-22 11:15:59

阅读数 907

评论数 0

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

一. 什么是上下文管理器 二. 自定义一个上下文管理器类: 三. 使用contextmanager 四. 一个例子, sqlalchemy: 数据库的自动提交和回滚 一. 什么是上下文管理器 上下文管理器是在Python2.5之后加入的功能,可以在方便的需要的时候比较...

2018-06-20 10:12:56

阅读数 960

评论数 2

werkzeug: LocalStack作为线程隔离对象栈的基本特性

  Werkzeug 通过自定义 werkzeug.local.Local 类实现线程隔离的栈结构, 封装了push, pop, 和top方法.可以将对象推入、弹出,也可以快速拿到栈顶对象. 同样具有线程隔离的作用. 并没有直接使用threading.Local . LocalStack作为栈...

2018-06-19 14:06:28

阅读数 141

评论数 0

vim: 显示树形目录插件NERDTree安装和常用指令

一. 安装: 将压缩包内文件放入指定目录即可: 将plugin/NERD_tree.vim拷贝~/.vim/plugin, doc/NERD_tree.txt拷贝到~/.vim/doc. wget http://www.vim.org/scripts/download_script.p...

2018-06-18 17:42:44

阅读数 68

评论数 0

python函数装饰器之带参数的函数和带参数的装饰器

1. 函数带多个参数 # 普通的装饰器, 打印函数的运行时间 def decrator(func): def wrap(*args, **kwargs): start_time = time.time() res = func(*args, **kwa...

2018-06-12 21:56:48

阅读数 1087

评论数 0

flask自定义一个过滤器例子: markdown文件读取和展示

除了一些内置的join length safe等过滤器外, flask还提供了自定义过滤器的功能. 一. 自定义一个mardown过滤器 自定义一个markdown过滤器, 使过滤器可以像safe解析html标签一样解析md语法. 安装库 pip install Markd...

2018-06-01 08:49:24

阅读数 407

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭