使用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"...

阅读全文

Flask开启请求异步的两种方式

Flask是单线程运行,如果在某个页面中执行了一些耗时的工作,那么程序就会在这里等待,无法响应其他的请求。也就是说,如果一个路由响应函数中有阻塞代码,那么其他用户无法访问这个web服务器,而且自己也打不开其他页面了。那么如何解决这个问题呢?这里提供两种解决方案第一种方案开启flask线程app.run(host='0.0.0.0', port=5000, debug=False)#改为app.run(host='0.0.0.0', port=5000, debug=Fa...

阅读全文

flask自定义过滤器的两种用法

之前有一篇笔记讲过了过滤器的定义和使用,但是是基于jinja2模板引擎的,可以先看看我过去的笔记:https://sulao.cn/post/551.html其实flask内也带有过滤器,实例对象的过滤器方法是add_template_filter,他的用法有两种我们还是按照大型项目的标准来,在工厂函数中去注册过滤器第一种方式我们现在统一的文件中创建过滤器函数,我的文件命令是filter.py内容如下#!/usr/bin/python3#coding:utf-8__author__ = 'yang.su'i...

阅读全文

flask接收layui复选框提交数据的几种方法

由于前端页面的需求不一样,有些页面使用的layui的数据表格监听传递数据,有些则是使用分页模块自行编写的ajax提交方式,前者通过重载表格种的where条件添加参数来提交到后端进行数据的重新渲染,后者根据ajax写的方式有两种接收方法,真是实践了一下,写法稍有不通,后面传递的参数名也是不一样的1.数据表格的重载方式,我的代码如下,主要是接收id复选框的值htmL代码:<div class="layui-inline" style="width: 300px;">&nbs...

阅读全文

flask第三方登陆插件flask_login用法详解

flask_login模块主要是用来验证登陆的插件,使用起来肯定比自己写要方便得多Flask-Login通过usersession,提供登录的常见任务,比如登入(loggingin)、登出(loggingout)和当前用户(currentuser)login_user()函数:实现用户的登入,一般在登入的视图函数中调用logout_user()函数:实现登出功能current_user属性:获取当前用户对于使用者来说,如果需要页面是授权用户才可见,在相应视图函数前加上@login_required装饰器进行声明即可,@log...

阅读全文