随笔分类 - flask
摘要:前言 什么是请求钩子?在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要统一处理,为了让每个视图函数避免编写重复功能的代码,flask提供了统一的接口可以添加这些处理函数,即请求钩子。 请求钩子的原理 先回顾一下flask对请求的处理流程: 接收请求 》创建请求上下文 》请求上下文入栈 》创建
阅读全文
摘要:前言 flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制,flask默认的session信息保存在cookie中,不够安全和灵活。 flask的session机制 session是用来干什么的呢?由于http协议是一个无状态的协
阅读全文
摘要:前言 Response对象负责对客户端的响应,每一个请求都会有一个Response对象,那么它在一个请求的声明周期内是怎么发挥作用的呢? Response对象 响应发生的位置 先回顾一下http请求的flask处理流程: 接收请求 》创建请求上下文 》请求上下文入栈 》创建该请求的应用上下文 》应用
阅读全文
摘要:前言 flask框架自带的代理对象有四个,分别是request,session,g和current_app,各自的含义我们在前面已经详细分析过。使用代理而不是显式的对象的主要目的在于这四个对象使用太过频繁,贯穿整个请求周期,显式传递很容易造成循环导入的问题,需要一个第三方的对象来进行解耦。 代理模式
阅读全文
摘要:前言 关于蓝图是什么?或为什么使用蓝图的详细介绍,官方文档讲的很详细,不再赘述。简单来说,在大型的应用中,我们不想视图函数显得杂乱无章,难以维护,将众多的视图函数按照Api的设计规则进行切割是一个好方法。 蓝图的简单使用 第一步:创建蓝图 第二步:注册蓝图 现在通过访问http://127.0.0.
阅读全文
摘要:前言 flask可以实现上传文件和下载文件的基本功能,但如果想要健壮的功能,使用flask_uploads插件是十分方便的。 安装 基本使用 创建UploadSet对象管理上传,UploadSet.save方法保存文件,通过UploadNotAllowed捕捉扩展名错误。 配置 我们可以在app的配
阅读全文
摘要:前言 应用上下文和请求上下文存在的目的,官方文档讲的很清楚,可参考: http://www.pythondoc.com/flask/appcontext.html 应用上下文对象在没有请求的时候是可以单独存在的,但是请求上下文对象只有在收到请求后才会被创建。请求处理和应用上下文和请求上下文的关系是:
阅读全文
摘要:前言 总结一下flask框架的请求处理流程。 系列文章 "flask基础之安装和使用入门(一)" "flask基础之jijia2模板使用基础(二)" "flask基础之jijia2模板语言进阶(三)" "flask基础之app初始化(四)" WSGI协议 一般来说http服务器和框架需要进行解耦,h
阅读全文
摘要:前言 flask的核心对象是Flask,它定义了flask框架对于http请求的整个处理逻辑。随着服务器被启动,app被创建并初始化,那么具体的过程是这样的呢? 系列文章 "flask基础之安装和使用入门(一)" "flask基础之jijia2模板使用基础(二)" "flask基础之jijia2模板
阅读全文
摘要:flask_wtf是flask框架的表单验证模块,可以很方便生成表单,也可以当做json数据交互的验证工具,支持热插拔。 安装 Flask WTF其实是对wtforms组件的封装,使其支持对flask框架的热插拔。 简单使用 flask_wtf定义字段 flask_wtf完全使用wtforms组件的
阅读全文
摘要:前言 flask框架默认的路由和视图函数映射规则是通过在视图函数上直接添加路由装饰器来实现的,这使得路由和视图函数的对应关系变得清晰,但对于统一的API开发就变得不怎么美妙了,尤其是当路由接口足够多的时候,可读性会变差。flask_restful可以使我们像Django那样统一在一个地方设计所有的A
阅读全文
摘要:前言 为了尽量减少缓存穿透,同时减少web的响应时间,我们可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的视图函数提供缓存服务,可以在一定的时间内直接返回结果而不是每次都需要计算或者从数据库中查找。flask_caching插件就是提供这种功能的神器。 flask_caching 安
阅读全文
摘要:python连接mongodb有多种orm,主流的有pymongo和mongoengine。 pymongo 安装相关模块 pymongo操作 主要对象 主要方法 交互实例 flask_pymongo操作mongodb flask_pymongo是方便pymongo集成到flask框架中,用法和py
阅读全文
摘要:flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制。 配置参数详解 SESSION_COOKIE_NAME SESSION_COOKIE_DOMAIN SESSION_COOKIE_PATH SESSION_COOKIE_HTT
阅读全文
摘要:下面记录一下SQLAlchemy使用的技巧。 在多模块下定义models 如果由多个蓝图下读定义了model模块,在初始化的时候需要加载到上下文中。 当使用flask_Migrate迁移数据库的时候,当执行: db会默认去上下文中寻找定义的models模型,所以必须在初始化app的时候加载相关mod
阅读全文
摘要:现在继续学习在集成的框架中如何使用celery. 在Flask中使用celery 在Flask中集成celery需要做到两点: 1. 创建celery的实例对象的名字必须是flask应用程序app的名字,否则celery启动会失败; 2. celery必须能顺利加载初始化文件。 celery在fla
阅读全文
摘要:前后端分离在开发调试阶段本地的flask测试服务器需要允许跨域访问,简单解决办法有二: 使用flask_cors包 安装 初始化的时候加载配置,这样就可以支持跨域访问了 对请求的Response header中加入header
阅读全文
摘要:前言 python有默认的日志配置,但是对于业务开发来说一般需要配置自己的日志输出方式,同时各种框架也继承了日志相关的内容。下面记录一下celery和flask框架中自带的logger使用方法。 flask使用logger flask中的app对象自带了logger方法,其本质上是在python内置
阅读全文
摘要:前言 Flask框架作为一个python极简化的web框架,它不像Django那样的重型,非常适合快速开发一些小型的应用。本人用flask开发了几个项目之后,慢慢研究flask底层的一些原理,开始一步步总结flask框架的使用方法以及设计原理。共勉! Flask框架简介 基于Werkzeug工具箱编
阅读全文
摘要:前言 前面学习了jijia2模板语言的一些基础知识,接下来继续深挖jijia2语言的用法。 系列文章 "flask基础之安装和使用入门(一)" "flask基础之jijia2模板使用基础(二)" 控制语句 和python语言一样,模板语言也有自己的控制语句,比如条件语句、循环语句等等; 条件语句if
阅读全文