PyYAML:YAML格式Python处理库

PyYAML 是一个用于解析和生成 YAML 格式的 Python 库。 PyYAML 相比 json,不仅能够解析数据,也能解析 Python 对象(非 YAML 标准语法)。 本文基于 PyYAML 3.13 版本。 QuickStart 安装纯 Python 实现版本 pipenv install pyyaml PyYAML 还有一个依赖 LibYAML 的版本,处理起来比纯...

RQ:轻量级Python任务队列

RQ 是一个基于 Redis 的轻量级任务队列,依赖 Redis >= 2.7.0。RQ 将任务、执行结果 pickle 序列化后存储于 Redis 当中,在较小规模的应用中可以替代 Celery 执行异步任务。 另外我觉得比较好的一点是,RQ 的 worker 不会预先读取任务函数。因此,任务函数更改后,不需要重启 RQ 的 worker。同时,推荐以下基于 RQ 的项目:...

双因素认证2FA

2FA 概念 认证(authentication)即是确认用户身份,密码是最常见的认证方法。但是密码容易泄露和冒充,因此越来越多的网站开始采用双因素认证(Two-factor authentication,简称 2FA)。即通过使用除密码外的其他因素,来确认用户身份,增加冒充的难度。 常用的认证因素可以分为以下几类: 秘密信息:只有该用户知道、其他人不知道的某种信息,比如密码。...

使用Flask-RESTful构建RESTful API

Flask-RESTful 是一个 Flask 扩展,用于快速构建 REST API。本文基于 Flask-RESTful 0.3.6 版本。 安装 安装: pipenv install flask-restful Minimal App: from flask import Flask from flask_restful import Resource, Api app =...

Python解析主目录相对路径

在 Linux 系统和 Windows 系统中,我们使用 ~ 和 ~user 表示用户主目录。 cd ~/Downloads 但是 Python 的 os.path.abspath 函数会认为 ~ 表示目录名称: In [2]: os.path.abspath('~') Out[2]: '/Users/chi/Projects/~' 对此,Python 提供了...

学习Docker(六)Docker Compose

简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。Compose 可以使用 YAML 文件来配置应用程序的服务,然后可以从配置中使用单个命令,创建并启动所有服务。 Compose 中有两个重要的概念: 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 项目...

减少MySQL内存占用

适用于 MySQL 5.6 和 MySQL 5.7 版本,其他版本未测试。 先说方法,修改 MySQL 配置文件的以下参数: [mysqld] performance_schema_max_table_instances=400 table_definition_cache=400 table_open_cache=256 performance_schema...

Python中stdout的输出缓存

stdout 中的缓存 首先来看一个例子: #!/usr/bin/env python3 import sys sys.stdout.write("stdout1 ") sys.stderr.write("stderr1 ") sys.stdout.write("stdout2 ") sys.stderr.write("stderr2 ") 将以上代码保存成 Python...

Flask-SQLAlchemy联合查询

一对多关系联合查询 模型定义如下,Category 和 Post 是一对多的关系: class Category(db.Model): __tablename__ = "category" id = db.Column(db.Integer, primary_key=True, autoincrement=True) posts = db.relationship("Post",...

PEP8命名规范

Todo [ ] Class Name中一段的翻译; 总则 Overriding Principle API公开给使用者部分的命名应当能明确地反映出其用途。 命名方式简述 Descriptive: Naming Styles 常见命名方法如下: 单个小写字母,如b; 单个大写字母,如B; 小写单词,如lowercase;...