Skip to main content

Flask-based web framework, including orm with connection pool

Project description

FlaskCap是一个基于flask封装的Web框架,集成了orator和DBUtils来提供数据库ORM及连接池的支持,并包含了一些工具类和易于使用的特性。

安装

使用pip安装和更新flaskcap:

pip install flaskcap

示例

flaskcap

  • flaskcap 的使用与flask一致。

from flaskcap import FlaskCap
from flaskcap import jsonify

app = FlaskCap(__name__)

@app.route('/foo')
def foo():
    return 'Hello World'

@app.route('/bar')
def bar():
    return jsonify({'hello': 'world'})

if __name__ == '__main__':
    app.run()
  • 通过 g 获取请求参数

flaskcap 将HTTP请求参数(文件参数除外)封装在 `g.request_payload` 中,包含表单及JSON参数。
from flaskcap import g, jsonify

@app.route('/', methods=['GET', 'POST'])
def index():
    return jsonify(g.request_payload)
  • 日志

flaskcap 提供一个跨平台的可按时间进行日志分割的实现,`TimedRotatingLogging`。
该实现是进程安全的,并且支持日志文件丢失后自动重建。
from flaskcap import TimedRotatingLogging

logger_handler = TimedRotatingLogging('app.log', backupCount=7)
  • 访问日志

flaskcap 提供了请求日志处理的注册方法,并提供了 `elapsed_time` 值记录请求处理时间
from flaskcap import current_app

app.access_logger.addHandler(NaturalTimedRotating('access.log'))

@app.log_access
def access_func(request, response):
    current_app.access_logger.info('Request takes %s seconds' % current_app.elapsed_time)

orm

  • orm的使用与orator一致,请参见orator的使用。

from flaskcap import FlaskCap
from flaskcap.orator import Orator

app = FlaskCap(__name__)

app.config['DATABASE'] = {
    'mysql': {
        'driver': 'mysql',
        'host': 'localhost',
        'database': 'db',
        'user': 'user',
        'password': 'password',
        # 是否开启慢查询日志,默认关闭
        'log_slow_query': True,
        # 慢查询时间阀值(毫秒),默认2000
        'slow_query_time': 3000,
        # 连接池策略,即DBUtils的连接池方案,包含'PersistentDB'和'PooledDB'两种,
        # 对应配置值为'persistent'和'pooled',默认为'pooled'
        'pool_policy': 'persistent',
        # 其它连接池参数,参见DBUtils
        # 'maxcached': 4,
        # 'maxusage': 10,
        # ...
    }
}

db = Orator(app)
# or
db = Orator()
db.init_app(app)

# 查询
users = db.table('users').all()

# 定义Model
class User(db.Model):
    pass

users = User.all()
  • 配置数据库慢查询日志。

import logging

from flaskcap.logging import TimedRotatingLogging

# 定义慢查询日志
slow_query_logger = logging.getLogger('orator.slow_query')
log_handler = TimedRotatingLogging('slow_query.log', backupCount=7)
slow_query_logger.addHandler(log_handler)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flaskcap-0.1.9.tar.gz (11.5 kB view details)

Uploaded Source

File details

Details for the file flaskcap-0.1.9.tar.gz.

File metadata

  • Download URL: flaskcap-0.1.9.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15

File hashes

Hashes for flaskcap-0.1.9.tar.gz
Algorithm Hash digest
SHA256 c45f6ceeb0c0ad27669ca1786ea638b416285627953f0f7e9d8795b001b078f9
MD5 a715971e04e01e9d7fcba5ffdffc1b74
BLAKE2b-256 bfaa6a0f8dc6f60c0a08932660f2ceb3ed09eaa2c99bd522cf5c19d06e187b2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page