python多线程处理数据库_在flask框架下利用Python的threading或thread多线程库如何操作数据库?...
萌新在写网站的发送邮件验证,为了防止用户滥发,所以加了权限。前端简单地disable按钮一刷新就没了,纯粹视觉提示作用,所以在后端models里为user加了一个resend_right,当为True时才能重新发送,False不行。
所以在models里,user模型有一个column是这样的(SQLAlchemy):
resend_right = db.Column(db.Boolean, default=True)
当然前端是等待60秒后可以重新发送,所以后端也计时60秒后重新赋值True给resend_right。我就想这种等待性IO/数据库读取录入等操作当然是多线程处理。
所以我写了resend_right权限重置的方法:
def async_reset(app, user):
with app.app_context():
time.sleep(55)
user.resend_right = True
def resend_right_reset(user):
app = current_app._get_current_object()
thr = Thread(target=async_reset, args=[app, user])
thr.start()
return thr
然后在views的路由函数里面调用它:
# Resend confirmation email route, need to be protected
@auth.route('/resend_email/')
@login_required
def resend_confirmation():
mail_host ='http://mail.' + re.split('@', current_user.email)[1]
if not current_user.resend_right:
flash("请不要尝试刷新页面来短时间内重复发送验证邮件,你可以在一分钟后再试")
return render_template('auth/confirm.html',user=current_user, mail_host=mail_host)
token = current_user.generate_confirmation_token()
.........
结果无效,所以我测试了一下,发现路由函数无问题,resend_right_reset无问题。假如我把user.rend_right=True写进resend_right_reset是能够正常运作的,但一旦用多线程来处理就始终无法重置。然后我分析,多线程这里用了current_app._get_current_object()获取全局对象,然后app.app_context()拿到了上下文导入到多线程里,应该就没问题了。但为什么不行?
求教,非常感谢!
python多线程处理数据库_在flask框架下利用Python的threading或thread多线程库如何操作数据库?...相关推荐
- python没有联网_无网环境下的 Python 开发指南
说起有关 Python 的指南,便一定得提到 K 神创建的『Python最佳实践指南』,英文名字是『The Hitchhiker's Guide to Python!』.毫不夸张地说,K 神创建的指南 ...
- 业余学Python是如何挣钱的?总结下利用Python赚外快的方法,闲余时间2k~5k
关于Python,还有一个问题大家伙比较感兴趣的:如何利用Python赚钱? 这里总结了一些用Python赚外快的方式,大家伙可以自己去尝试一下. Python兼职分为以下三种: 商家提供接口爬取数据 ...
- python 修改文件名_【学习分享】利用python批量修改文件名
1 前言 分享一个利用python批量修改文件名的方法,我们以前分享过用DOS命令来批量修改文件名,但是如果要修改多个文件夹内的文件名,用DOS命令就不好处理了,我们就来分享一下如何用python处理 ...
- python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略
点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台, ...
- 利用python爬取_在知乎上利用Python爬取了三百万数据!服务器崩了!企业级大项目...
请各位注意: 以下所有分析结果都基于我抓取到的这300万用户的个人信息,非权威分析,仅供参考. 数据抓取时间为2017年7月份,用户数据会随着时间推移而变化,所以该报告具有一定时效性. 知乎的用户个人 ...
- 如何用python做后端写网页-flask框架
如何用python做后端写网页-flask框架 什么是Flask 安装flask模块 Hello World 更深一步:数据绑定 后端传入数据 从前端获取数据 数据库连接 screen 创建后台 查看 ...
- python自动化从零开始_从零开始学Selenium自动化测试:基于Python:视频教学版
前言 第1章 自动化测试基础 1.1 自动化测试简介 1.1.1 自动化测试的定义 1.1.2 自动化测试与手工测试的关系 1.1.3 何时开展自动化测试 1.1.4 自动化测试的优势 1.1.5 自 ...
- matlab 随机森林算法_(六)如何利用Python从头开始实现随机森林算法
博客地址:https://blog.csdn.net/CoderPai/article/details/96499505 点击阅读原文,更好的阅读体验 CoderPai 是一个专注于人工智能在量化交易 ...
- springboot框架下利用websocket实现即时通讯
springboot框架下利用websocket实现即时通讯(文章末尾有git项目打包文件,直接下载使用即可) 用websocket实现简单的在线聊天,先画个时序图,直观感受下流程 SystemCon ...
最新文章
- js中replace未定义_js中replace的用法
- java - 线程1打印1-10,当线程打印到5后,线程2打印“hello”,然后线程1继续打印...
- fiddler不能抓取浏览器数据_抓包软件 Fiddler 了解一下?
- 读《李商隐诗集》有感
- linux脚本的数据输出到excel,使用shell实现Excel表格导出功能 | 剑花烟雨江南
- cmd的rd命令简单解析
- 双指针 - 四数之和
- 英特尔固态硬盘540s开卡_英特尔Z490主板绝配?技嘉PCIe 3.0 x8固态硬盘测试:6.5GB/s读速...
- 【vue】路由Router基础详解,带你快速入门~
- 安卓 App 库存系统开发 基础版本
- web工程本地跟tomcat部署导致根路径不一致问题
- 空卡安装设置树莓派4B并安装opencv+QT
- hdu2089 不要62
- break;continue语句
- ios系统软件迁移到安卓_苹果系统怎么把文件转到安卓手机?
- C++ 多线程系统编程精要
- 万字长文:AWS如何跨越“鸿沟”
- Win10系统文件夹被设为只读,取消Word文件的只读模式
- 关于linux fc多路径巡检
- 计算机视觉、图像处理学习资料汇总(转)
热门文章
- 计算机视觉:基于YOLO-V3林业病虫害目标检测
- AI识虫:林业病虫害数据集和数据预处理方法
- Leecode之翻转整数
- Java对象间的转化
- sqlplus配置连接mysql_如何配置和使用iSQL*Plus
- camunda流程引擎如此简单(二)
- echarts设置折线图属性
- Nginx+PHP-FPM——Nginx日志:[Primary script unknown] 网页:[file not found. ]解决方案
- [USACO4.2]完美的牛栏The Perfect Stall
- python挖长尾词 源码,如何用代码挖局长尾关键词