Flask介绍对于Flask大家很熟悉了,现在主流Python的web框架,除了Django就数Flask了 。
Django不用多说,集合了orm、template模板引擎、后台管理系统、参数验证、路由系统、用户认证和其他一些工具的,方便快速建站,主要构建了ORM和复写ADMIN模块,就可以快速生成网站和后台增上改查和一些其他的定制化开发 。
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手 。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现 。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站 。
笔者更倾向于Flask这个框架,因为它更加透明,更能掌控项目的质量 。
使用过的插件Flask的插件管理是一个很不错的特性,我们利用它可以在启动web服务之前加载我们所需要的插件,一下是笔者经常用到的:
- flask-restful
- flask-sqlalchemy
- MySQLclient或者pymysql
import pymysqlpymysql.install_as_MySQLdb()- marshmallow
- flask-cors
- flask-login或者flask-jwt-extended
Flask框架下面简单说一下flask的框架,flask框架是基于Werkzeug和Jinja2两大基础框架,Werkzeug是基于WSGI协议的框架,已经有了基本的路由、数据结构、请求和响应等功能,在此之上Flask扩展了一些特性:
- request
- 当请求过来,Flask将app_context和request,这两个对象压入一个线程号或者协程号对应的栈中,说白了就是dict字典,线程或者携程号有get_indent内置方法获得
- 请求过程中,由栈弹出上次压入栈中的app_context和request
- 请求结束释放空间
- endpoint
这里数据结构简单地说就是一个map类型,一个名称唯一对应一个视图方法,不允许相同的endpoint出现,这个应用在使用url_for这个方法上:
- 程序中使用url_for进行路由跳转
- template模板总是用url_for查找对应的路由
- extentions
from flask import Flaskfrom flask_sqlalcemy import Sqlalchemydb = Sqlalchemy()def create_app():"""创建Flask app"""f_app = Flask()f_app.config.from_object("core.settings")db.init_app(app=f_app)return f_app这样的形式,我们可以使用全局这个db对象了 。开发项目目录结构我们可以借鉴django的目录形式进行组织项目的框架,例如:
推荐阅读
- 传染病及其预防
- PHP Laravel框架用户权限管理,按钮级别控制
- 白茶主要功效介绍,白茶功效及其种类先容
- 吴门画派代表人物及其作品 吴门画派的代表人物
- 字节跳动 Go RPC 框架 KiteX 性能优化实践
- 六安瓜片作用及其禁忌,六安瓜片的功效与作用
- 安茶功效与作用是什么,玉蝴蝶和胖大海的功效与作用及其饮用方法是什么
- 防风通圣散组成及其减肥功效
- 罗汉果茶及其适用人群,罗汉果茶的做法
- shiro 安全框架入门,看这一篇就够了
