PYAPE:一个Web开发工具集

第136篇原创,就在曾嵘胡扯的地方

趁国庆有整块的时间,我把之前写的一些开发相关的工具整理了一下。这个公众号上发过少量的技术文章,可以关注 「曾老师的Python课」 这个标签,以及公众号菜单中的「技术文章」这个专辑。

我的技术文章主要还是写在博客上,欢迎访问我的博客。

1 https://blog.zengrong.net

本文包含大量外链。由于微信公众号会吞掉外部链接,请复制下面的链接到浏览器访问,或直接点击文章左下角「阅读原文」。

1https://blog.zengrong.net/pyape/

PYAPE [paɪp] = a Application Programming Environment of Python.

PYAPE 是我在开发 Flask 应用程序过程中积累的一个开发框架。准确地说,这不算一个框架,而是一组集合。我将开发 Web 以及 API 应用程序过程中积累的一些好用的工具和常用功能进行了简单的封装,整合在一起, 方便快速启动一个新项目。

PYAPE 的完整文档:https://pyape.rtfd.io/

PYAPE 的 github 主页:https://github.com/zrong/pyape

PYAPE 我的博客上的页面:https://blog.zengrong.net/pyape/

PYAPE 的特点如下:

集成命令行

通过对 Fabric 的集成,使用统一的命令行工具来实现如下功能:

  1. 生成配置文件
  2. 将程序部署到远程服务器
  3. 控制远程服务器的运行

详细说明请阅读:命令行。

多开发环境支持

可配置多套开发环境,方便同时支持本地开发、局域网开发、互联网测试和正式服部署。

在开发环境配置中提供的配置,将被 合并 进入默认的配置。合并规则如下:

  • 开发环境配置会 覆盖 默认配置中的同名参数。
  • 开发环境中的新配置,会 增加 到默认配置中。
  • 若希望在开发环境中 删除 某个默认配置,可以将开发环境中的同名变量设置为空值。

详细说明请阅读: 多开发环境支持。

模版支持与配置合并

pyape 的命令行工具支持多级配置合并,方便在多个配置中共用数据,不必重复输入配置。

pyape 允许自定义配置生成模版。

环境变量替换支持

pyape 的配置文件模版机制支持从环境变量中获取实际值,这样可以避免将敏感信息写入配置文件提交到 CVS 造成安全隐患。

详细说明请阅读:替换变量。

SQLAlchemy 支持

Pyape 集成了 SQLAlchemy 支持。与 Flask-SQLAlchemy 不同,Pyape 直接使用标准的 SQLAlchemy 语法。

这更加方便升级到未来的 SQLAlchemy 2.0 版本。

Use Flask and SQLalchemy, not Flask-SQLAlchemy 这篇文章的观点,我也是赞同的。

Redis 支持

基于 flask-redis 修改,使其支持多个 Redis 数据库。

Logging 集成

支持 ZeroMQHandler、RedisHandler,提供 get_logger 和 get_logging_handler 方便从配置中直接生成 Logger 和 Handler 对象。

关于 logging,我在博客上讨论过多次,详见:TAG: logging。

详情参见 pyape.logging 包。

与 PYAPE 相关

  • TAG: flask
  • TAG: uwsgi
  • TAG: sqlalchemy
  • TAG: server
  • TAG: python
  • 部署Flask + uWSGI + Nginx
  • 在 Python+uWSGI 应用中使用缓存
  • uWSGI+rsyslog 实现 rotating logging
  • Flask+uWSGI 的 Logging 支持
  • Flask+uWSGI Logging rotate:重要补充
  • pyzog:uWSGI logging rotate 的终极方案
  • uWSGI 的 log 参数详解