Flask开发 经验技巧总结

简介: Flask作为一个主流的Python Web框架之一,有比较广泛的应用,但是有经验的小伙伴可能知道,这里边其实也有很多坑,让你不得不防,在使用的过程中可以积累一些经验。

1.为视图访问增加计时器

有的时候,我们会有这种需求,在网页中显示该网页的访问数量,此时就需要增加计时器,但是一般的计时器会存在一些问题:

(1)WSGI服务器会将Flask服务生成多个进程,每个进程都有自己的独立副本,重复的请求会由不同的进程处理,从而产生不同步的值;

(2) 假如Flask服务异常终止,计数就会清零。

此时可以按照如下方法解决:

(1)multiprocessing模块;

(2)保存到数据库中。

第一种方式原理为:

使用Python自带库multiprocessing.Value,只要在创建值后生成进程,就可以跨进程同步对共享值的访问,如下:

from flask import Flask, jsonify
from multiprocessing import Value
counter = Value('i', 0)
app = Flask(__name__)
@app.route('/')
def index():
    with counter.get_lock():
        counter.value += 1
    return jsonify(count=counter.value)
app.run(processes=8)

此时可以实现同步计时,但是如果应用程序进程分布在多台计算机上,则共享内存也会存在问题:它们仅在本地计算机上同步,而不是在网络上同步。

最可靠的还是直接将计数保存到数据库,对于访问路由对应的对象模型增加一个字段,每访问一次就操作数据库,对该字段加一,这样就不存在上面的问题了。

相关文章
|
4月前
|
安全 Python
Python Web 开发: 在 Flask 中如何处理文件上传?
Python Web 开发: 在 Flask 中如何处理文件上传?
|
4月前
|
关系型数据库 MySQL Docker
利用docker 开发 信息系统,python + mysql + flask + jquery
利用docker 开发 信息系统,python + mysql + flask + jquery
60 2
|
6月前
|
安全 测试技术 网络安全
软件测试|测试平台开发-Flask 入门:URL组成部分详解
软件测试|测试平台开发-Flask 入门:URL组成部分详解
34 0
|
9天前
|
监控 安全 数据库
Flask应用部署指南:从开发到生产环境
【4月更文挑战第16天】本文是Flask应用从开发到生产的部署指南,涵盖开发环境准备、应用开发、部署方案选择、生产环境配置、应用部署、监控与维护。确保安装Python、Flask及依赖库,使用文本编辑器或IDE编写代码,关注应用安全与性能。选择WSGI服务器、Docker或云服务平台部署,配置生产环境,确保安全性,然后部署应用并进行监控维护,定期更新修复问题,保证应用稳定运行。
|
11天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。
|
1月前
|
存储 安全 JavaScript
使用Python的Flask框架开发验证码登录功能
使用Python的Flask框架开发验证码登录功能
28 0
|
2月前
|
数据库 开发者 Python
Python在Web开发中的应用:Flask与Django框架介绍与实践
Python在Web开发中的应用:Flask与Django框架介绍与实践
|
2月前
|
开发框架 缓存 数据库
Python中的Web开发:Flask与Django的比较与选择
Python中的Web开发:Flask与Django的比较与选择
207 0
|
3月前
|
数据采集 开发框架 数据挖掘
基于Python+Flask框架开发实现二手车数据爬取及分析
基于Python+Flask框架开发实现二手车数据爬取及分析
|
3月前
|
SQL 开发框架 数据库
Python小知识 - 如何使用Python的Flask框架快速开发Web应用
Python小知识 - 如何使用Python的Flask框架快速开发Web应用