基于烧瓶的web框架,包括带有连接池的orm

flaskcap的Python项目详细描述


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

安装

使用pip安装和更新flaskcap:

pip install flaskcap

示例

flaskcap

  • flaskcap 的使用与flask一致。
fromflaskcapimportFlaskCapfromflaskcapimportjsonifyapp=FlaskCap(__name__)@app.route('/foo')deffoo():return'Hello World'@app.route('/bar')defbar():returnjsonify({'hello':'world'})if__name__=='__main__':app.run()
  • 通过 g 获取请求参数
flaskcap 将HTTP请求参数(文件参数除外)封装在 `g.request_payload` 中,包含表单及JSON参数。
fromflaskcapimportg,jsonify@app.route('/',methods=['GET','POST'])defindex():returnjsonify(g.request_payload)
  • 日志
flaskcap 提供一个跨平台的可按时间进行日志分割的实现,`TimedRotatingLogging`。
该实现是进程安全的,并且支持日志文件丢失后自动重建。
fromflaskcapimportTimedRotatingLogginglogger_handler=TimedRotatingLogging('app.log',backupCount=7)
  • 访问日志
flaskcap 提供了请求日志处理的注册方法,并提供了 `elapsed_time` 值记录请求处理时间
fromflaskcapimportcurrent_appapp.access_logger.addHandler(NaturalTimedRotating('access.log'))@app.log_accessdefaccess_func(request,response):current_app.access_logger.info('Request takes %s seconds'%current_app.elapsed_time)

orm

  • orm的使用与orator一致,请参见orator的使用。
fromflaskcapimportFlaskCapfromflaskcap.oratorimportOratorapp=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)# ordb=Orator()db.init_app(app)# 查询users=db.table('users').all()# 定义ModelclassUser(db.Model):passusers=User.all()
  • 配置数据库慢查询日志。
importloggingfromflaskcap.loggingimportTimedRotatingLogging# 定义慢查询日志slow_query_logger=logging.getLogger('orator.slow_query')log_handler=TimedRotatingLogging('slow_query.log',backupCount=7)slow_query_logger.addHandler(log_handler)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit有没有办法在Java中重新初始化静态类?   在浏览器中点击应用程序时java Play框架挂起   文件Java错误中的NullPointerException   使用Java中的SNMP查找网络中计算机的登录名   java包装服务器引导程序已弃用,有什么替代方案?   当客户在等待理发时,java信号量值是否存在问题?   java如何使用JavaMail仅下载特定类型的附件   如何在java中将十进制转换为十六进制   java Slick2D粒子系统不会生成粒子   java检测更改事件来自何处   将Java集合类型参数类设置为数组   java如何从eclipse导出为可运行JAR文件?   java EntityManager对象未注入Glassfish和Spring   swing从actionPerformed和actionListener Java返回字符串   java在给定另一个等价键对象的情况下获取映射项的当前键   无论输入如何,java网络都会产生相同的输出