flask在before_request中添加特定路由到例外(拦截器)

标题可能描述的不太清理,就是例如我在before_request中检测用户登录状态,当用户没有登录就转向/login登录页面,但是这里就有一个问题,当/login登录跳转的页面也会触发before_request,这个时候还没完成登录动作,session也没保存,当然就不是登录状态,所以又转向了/login登录页面,从而造成了死循环,那么我们就需要在before_request请求的方法中添加一些这种特定的路由,对他们进行放行示例代码如下@app.before_requestdef verify_login():  ...

阅读全文

flask中使用sqlite的方式

Flask官网的sqlite例子可以查看这里http://www.pythondoc.com/flask/patterns/sqlite3.html,我这里根据我项目的实际情况是这样写的我的入口文件manager.pyfrom flask import Flask,current_app,gfrom app.application import create_appapp = create_app()@app.teardown_requestdef ...

阅读全文

flask加载配置的几种方法

其实flask配置本质上就是一个字典,这些配置变量都通过Flask对象的app.config属性作为统一的接口来设置和获取,它指向的Config类实际上是字典的的子类注意:配置的名称必须是全大写形式,小写的变量将不会被读取flask加载配置有以下几种方式1.直接配置我们可以直接通过app.config["KEY"]=value的方式来配置配置文件然后获取的方式可以通过app.config.get("KEY")#或者app.config["key"]如果使用update方法可以一次配置...

阅读全文

flask异常处理errorhandler的使用方法

在flask中有errorhandler和app_errorhandler两种方法可以捕捉到视图函数中的异常并自定义处理,并终端request请求那我们就来看看他们的区别以及使用方法from . import mainfrom flask import jsonify@main.errorhandler(404)def error_404(error):    response = {'code'...

阅读全文

使用Dockerfile构建flask镜像

之前对dockerfile进行了一些构建参数的学习,今天自己构建了一个常用的flask镜像,我个人认为使用dockerfile构建是为了自定义以及定制化的一些环境需求而使用的,例如自己写的python程序需要预装一些模块,开机启动我写的脚本或者制定位置启动程序等等,然而直接拉取docker仓库的镜像满足不了我的需求,从而需要dockerfile来构建,下面是我构建的flask镜像,很简单,只是简单的初步学习,后面有项目了再分享一些项目上构建的复杂镜像/data/app目录下主要有三个文件Dockerfile,requirements.txt,app.py...

阅读全文

flask基于celery实现的异步任务

Celery是一个异步任务队列。你可以使用它在你的应用上下文之外执行任务。总的想法就是你的应用程序可能需要执行任何消耗资源的任务都可以交给任务队列,让你的应用程序自由和快速地响应客户端请求。使用Celery运行后台任务并不像在线程中这样做那么简单。但是好处多多,Celery具有分布式架构,使你的应用易于扩展。一个Celery安装有三个核心组件:Celery客户端:用于发布后台作业。当与Flask一起工作的时候,客户端与Flask应用一起运行。Celeryworkers:这些是运行后台作业的进程。Celery支持本地和远程的...

阅读全文

flask使用flask_migrate更新并迁移表数据

在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库。仅当数据库表不存在时,Flask-SQLAlchemy才会根据模型进行创建。因此,更新表的唯一方式就是先删除旧表,不过这样做会丢失数据库中的所有数据。更新表的更好方法是使用数据库迁移框架。源码版本控制工具可以跟踪源码文件的变化,类似地,数据库迁移框架能跟踪数据库模式的变化,然后增量式的把变化应用到数据库中这个模块需要我们单独安装pip install flask_migrate使用方法也很简单使用原本实例化的app对象作为参数实例化migrate对...

阅读全文

Flask报错flask: jinja2.exceptions.TemplateNotFound error的解决方法

Flask使用render_template()方法来渲染模板,可以在这个函数中指定模块和传值到模块,在实际开发中,我们一般使用工厂函数来注册蓝图,同时也是在在工厂函数文件中获取app实例,然后直接注册到应用工厂中,看看我的flask应用目录如果我选择在入口文件实例化flask实例,那么是这样from flask import Flaskfrom flask_script import Manager,Server,prompt_boolfrom app.application...

阅读全文

Flask用paginate实现数据分页

Flask分页也有几种方式,可以使用我们之前写的分页函数,可以查看我之前的笔记https://sulao.cn/post/552.html也可以使用paginate模块来分页,paginate方法是flask-sqlalchemy提供的,下面我们来看看paginate的使用方法paginate的用法paginate(page, per_page, error_out=True)page 当前页数per_page 每页显示的条数error_out 是否打印错误信息paginate的属性...

阅读全文

flask整合wangEditor编辑器之图片上传

以前没有整合过编辑器,目前没事整合个编辑器玩下,基本编辑器中主要就是附件上传的地方需要特别的写点代码,其他的可以直接照搬,我整合的是wangEditor,这个编辑器比较清爽,如果需要繁多的功能可以选择Ueditor,那个是百度出的,但是界面太老了,wangEditor的官网地址是http://www.wangeditor.com/下面就直接上我的代码了前端代码{% include 'public/header.html' %}<div class="layui-warp"...

阅读全文