Flask
冰冷的希望
坚持记录,相互帮助,一起进步
展开
-
【python】多级菜单列表权限控制
在开发过程中经常遇到多级菜单的情况,比如说导航栏、分类栏等等,甚至可以是无限级菜单。下面是角色的权限控制,根据数据库控制是否可以查看某个菜单1.数据库相关表CREATE TABLE `tb_menus` ( `menu_id` int(11) NOT NULL AUTO_INCREMENT, `menu_name` varchar(200) NOT NULL, `menu_level` int(11) NOT NULL, `superior_menu_id` int(11) NOT N原创 2021-09-02 11:22:35 · 507 阅读 · 0 评论 -
【flask】jwt登录认证(有刷新token)
1.获取token每次请求都会获取token,token位于客户端的header的Authorization字段,取不到返回Nonecommon/utils/middleware.py# common/utils/middleware.pyfrom flask import request, current_app, gfrom utils.jwt_util import verify_jwtdef get_userinfo(): # 1.获取请求头中的token信息 [登录token原创 2020-11-08 17:49:22 · 3658 阅读 · 0 评论 -
Session事务回滚、flask-migrate数据迁移
1.session这里所说的session可不是和request一起的那个session,而是flask-sqlalchemy 对于 sqlalchemy本体 的 Session 进行了一定的封装,它会在首次数据操作时自动创建结束时自动销毁,整个过程使用的是同一个线程隔离的sessionSession中可以包含多个事务,并且事务失败后会自动回滚。但是,同一个请求中, 想要在前一个事务失败的情况下创建新的事务, 必须先手动回滚事务 Session.rollbackfrom flask import Fl原创 2020-11-04 20:37:45 · 899 阅读 · 0 评论 -
【flask】flush刷新机制、外键关联、relationship关系字段、join关联查询
1.flush刷新当我们在db.session.add()数据的时候,实际上它并不会直接写进数据库,而是等待db.session.commit()命令,而另一个比较像的命令是db.session.flush(),它会先将会话的数据取出,底层执行SQL模拟生成数据,最后进行回滚from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config["SQLALCHEMY_DATAB原创 2020-11-04 20:20:14 · 760 阅读 · 0 评论 -
【flask】SQLAlchemy 的增删改查(CRUD)
1.增加数据增加数据的步骤很简单,只需要把模型类对象db.session.add(模型类对象)即可,不过如果没有开启自动提交的话,需要手动提交db.session.commit()from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:mysql@192.168.203.132:原创 2020-11-04 19:47:47 · 4857 阅读 · 0 评论 -
【flask】flask-sqlalchemy、组件初始化、模型类
1.SQLAlchemySQLAlchemy 是目前python中最强大的 ORM框架, 功能全面, 使用简单优点面向对象,开发效率高防止SQL注入搭配数据迁移,更新数据库方便有语法提示,可以查看SQL语句缺点需要语法转换,执行效率比原生SQL低复杂的查询往往语句也比较复杂安装pip install flask-sqlalchemypip install mysqlclient官方文档https://flask-sqlalchemy.palletsprojects.co原创 2020-11-03 19:11:40 · 1209 阅读 · 1 评论 -
【flask】工厂函数、单例模式
1.工厂函数工厂函数,就像一个工厂一样,使用不同的材料可以做出不同的成品,工厂函数就是将一个功能进行封装,使用者只需要传入自己所需要的一个或多个参数就能得到自己想要的返回settings.pyclass BaseConfig(object): DEBUG = True SECRET_KET = "asfnikahsf"class DevelopmentConfig(BaseConfig): DEBUG = True SQL_HOST = "127.0.0.1"原创 2020-11-01 20:50:21 · 688 阅读 · 0 评论 -
【flask】请求参数解析校验、响应序列化、自定义响应json
1.请求解析1.1 RequestParser如果需要对请求数据进行序列化或反序列化操作,应该需要的对数据进行校验,我们可以通过RequestParser来完成。使用步骤如下1)parser = RequestParser()2)parser .add_argument(参数名, 参数规则…)3)args = parser.parse_args()4)args.参数名from flask import Flaskfrom flask_restful import Resource, Api原创 2020-11-01 20:38:30 · 3920 阅读 · 5 评论 -
【flask】flask-restful、简单使用、类视图装饰器、蓝图与类视图
1.flask-restfulFlask-RESTful 是一个 Flask 扩展,它添加了快速构建 REST APIs 的支持安装pip install flask-restful文档官方文档 https://flask-restful.readthedocs.io/en/latest中文翻译 http://www.pythondoc.com/Flask-RESTful/index.html2.简单使用1)组件对象 = Api(app)2)自定义视图类(Resource)3)组件对原创 2020-11-01 18:27:06 · 1268 阅读 · 0 评论 -
【flask】加载配置、切换配置、隐私配置
1.加载配置flask加载配置的方式有多种1)加载默认配置。flask启动时会加载默认的配置,该配置可以通过app.default_config查看,那是一个类字典类型,我们自然也可以通过直接修改它,app.config["键"] = 值2)从类对象加载。新建一个类,然后用过app.config.from_object(类名)加载,从文件加载类似3)从环境变量加载。from_envvar(变量名,silent=True)main.pyfrom flask import Flaskfrom .s原创 2020-10-31 20:44:48 · 1061 阅读 · 0 评论 -
【flask】蓝图(Blueprint)
1.BlueprintBlueprint(蓝图)是一种组织一组相关视图及其他代码的方式。与把视图及其他代码直接注册到应用的方式不同,蓝图是把它们注册到蓝图,然后在工厂函数中把蓝图注册到应用。简单来说,一个蓝图就是一个模块,类似于Django的子应用,例如有user和home两个模块,那结构如下--------- project # 工程目录 |------ main.py # 启动文件 |------ user # 用户模块 | |--- __init__.py # 包的初始化文件,原创 2020-10-31 20:05:55 · 408 阅读 · 0 评论 -
【flask】请求钩子、上下文、综合认证
1.请求钩子请求钩子就是就是在客户端发起请求的时候,对各个阶段进行监听和处理,这可以完成一些统一的处理,减少代码冗余。类似于中间件或前后置主要有以下四种请求钩子before_first_requestweb应用被第一次请求前调用可以进行web应用初始化处理before_request每次执行视图函数之前调用,可以对请求进行一些准备处理如果在该函数中返回了一个响应,视图函数将不再被调用after_request如果没有抛出错误,每次执行视图函数之后(已经包装为响应对象)调用接受原创 2020-10-31 19:22:00 · 283 阅读 · 1 评论 -
【Flask】请求、响应(重定向、路由反转)、状态保持、捕获异常
1.request 请求客户端发起的请求,我们可以通过flask的request对象接收,但是这个对象需要导入1.1 常用属性属性说明类型request.url请求的urlstrrequest.method请求方式strrequest.headers请求头信息EnvironHeaders 类字典对象request.args查询参数MultiDictrequest.form表单参数MultiDictrequest.data请求体数原创 2020-10-30 16:22:52 · 789 阅读 · 0 评论 -
【Flask】路由装饰器、路径传参、自定义路由转换器
1.路由路由就是根据请求方式和url确定由哪个视图函数进行处理,不像Django通过路由列表,Flask是通过装饰器的方式 @app.route() 指定视图函数以及支持的请求方式,该方法可以传入url和methodsfrom flask import Flaskapp = Flask(__name__)@app.route(rule="/index", methods=["get", "post"]) # 指定路径,支持的请求方式(可使用默认的)def index(): retur原创 2020-10-29 23:20:21 · 1358 阅读 · 0 评论 -
【Flask】第一个Flask程序(安装、运行参数、运行方式)
1.FlaskFlask是一个轻量级的Web框架,使用Python语言实现。正是轻量级,所以它与Django重量级框架的不同点就是,集成的东西非常少,大多都需要自己实现,所以比较适合简单应用或定制化程度较高的项目安装(建议在虚拟环境安装)pip install flask==1.0.2安装完成之后,我们写第一个flask项目from flask import Flask # 导包app = Flask(__name__) # 创建app,__name__表示指向程序所在的包@app.原创 2020-10-29 21:31:32 · 5824 阅读 · 0 评论