Flask
文章平均质量分 68
季布,
每一个你不满意的现在,都有一个你没有努力的曾经。
展开
-
Chat模块封装
现在有个问题是把页面关闭之后再打开,输入之前登录过的用户名会提示用户名已存在。刷新页面或者断开连接 会把该用户删掉。如果用户未登录,则跳转到登录页面。登录成功后跳转到home页。原创 2023-08-03 12:54:44 · 157 阅读 · 0 评论 -
聊天系统登录后端实现
说明:这里做成轻量级的,数据不存储在数据库中,存储在内存中。原创 2023-08-01 17:57:25 · 587 阅读 · 0 评论 -
Flask-SocketIO
Flask-SocketIO使Flask应用程序可以实现客户端和服务器之间的低延迟双向通信。客户端应用程序可以使用 Javascript、Python、C++、Java和Swift中的任何SocketIO客户端库或任何其他兼容客户端来建立与服务器的永久连接。原创 2023-08-01 16:06:18 · 5217 阅读 · 3 评论 -
使用Gunicorn+Nginx部署Flask项目
我们之前使用python app.py,或者是在开发机上使用Pycharm运行项目,其实都是借助Werkzeug的开发服务器,这个服务器同一时刻只能有一个用户访问,这肯定是不行的,因此我们需要借助一些专门的应用服务器。如果是中大型网站,或者是公司的商业网站,建议单独购买云MySQL服务器,他有更稳定的运行保障,有更安全的数据备份机制,缺点就是要多花点钱,但数据是一个网站的命脉,所以对于商业网站来说,强烈建议购买单独的云MySQL服务器,而不是把MySQL也运行网站服务器上。如果不报错,说明成功。原创 2023-08-01 15:00:10 · 1211 阅读 · 0 评论 -
JWT鉴权-JWT原理
先抛开JWT,回顾一下我们传统的网页,是通过Cookie的方式实现鉴权的,在用户登陆完成后,返回能识别该用户的信息到浏览器的Cookie中,下一次浏览器请求相同域名的时候,会自动把上次从服务器获取的Cookie提交上去,从而实现用户鉴权。关于flask-jwt-extended的讲解就在这里,学会这些,您在前后端分离项目中的鉴权,将没有任何问题。当然,也可以把jwt设置到cookie中,Body中,甚至是请求URL的参数中,但设置在请求头中实际上是最方便的,只要在请求方法中封装好,调用起来非常方便。原创 2023-07-24 11:38:04 · 1065 阅读 · 0 评论 -
Flask SQLAlchemy_Serializer ORM模型序列化
在前后端分离项目中,经常需要把ORM模型转化为字典,再将字典转化为JSON格式的字符串。在遇到sqlalchemy_serializer之前,我都是通过类似Java中的反射原理,获取当前ORM模型的所有字段,然后写一个to_dict方法来将字段以及他的值封装成字典。这种做法虽然一定程度上方便了开发,但也是带着枷锁跳舞,存在以下几个弊端:无法优雅的排除不需要序列化的字段。无法优雅的序列化多表之间的关系。原创 2023-07-17 16:11:18 · 2000 阅读 · 0 评论 -
Flask 发布帖子分页
校验富文本编辑器上传的图片新建post目录用来存放帖子图片在config配置文件中添加帖子图片地址。原创 2023-06-01 18:32:42 · 176 阅读 · 0 评论 -
Flask 设置头像及创建帖子模型类
我们经常在一些网站上看到,在用户没有自定义头像的情况下,会给每个用户都生成一个头像,这让网站显得更美观,那这个是怎么实现的呢?在Flask中有一个插件,叫做Flask-avatars,专门提供头像解决方案。里面集成了各种头像解决方案。下面就来讲解一下。原创 2023-05-23 18:44:08 · 834 阅读 · 0 评论 -
Flask 登录及用户功能
登录权限设置 只有登录后可以访问。原创 2023-05-18 18:32:10 · 641 阅读 · 0 评论 -
flask 注册表单验证及功能实现
如果使用了Email validators 就必须安装email_validator。原创 2023-05-17 18:22:55 · 226 阅读 · 0 评论 -
flask 图形验证码
把captcha文件夹放在utils包中。原创 2023-05-12 19:09:56 · 153 阅读 · 0 评论 -
flask 重构restful,保持返回数据格式一致
在项目中新建utils包,新建一个restful文件。定义统一的格式和状态码。原创 2023-05-12 18:20:14 · 291 阅读 · 0 评论 -
Flask celery异步发送邮件
一、Redis for Windows下载之前微软维护了一份Windows版本的Redis,但是版本停留在3.2,并且也关闭了项目更新渠道。这里我们使用另外一位大神提供的Windows Redis,更新及时,用户量也很大。下载地址为:https://github.com/tporadowski/redis/releases我们选择下载Redis-x64-5.0.14.msi二、安装Redis:这里以图文的形式讲解Redis的安装过程。原创 2023-05-12 17:15:29 · 742 阅读 · 0 评论 -
flask 项目配置
连接数据库 安装models / auth映射倒数据库目前app.py项目住入口和模型类没有产生关联,需要导入模块执行迁移新建蓝图apps/front/viewsfront/initapp.py模板渲染原创 2022-12-28 16:41:46 · 303 阅读 · 0 评论 -
记录一次makefile + dockerfile + dockerfile-compose + shell 部署项目
项目主要是算法功能,所依赖的环境比较麻烦原创 2022-11-04 11:08:16 · 522 阅读 · 0 评论 -
vue+flask 一次性上传多个文件,并一次性下载
上传文件后把上传文件的按钮禁用掉,防止多次点击上传,而且上传完文件是一个耗时的操作,使用elementui的loading以表明上传的状态。对中间的功能逻辑可以忽略,主要是流程。原创 2022-11-02 15:29:45 · 875 阅读 · 0 评论 -
flask Vue 上传文件至阿里云OSS对象存储,返回url链接
需求:前端负责将文件传递给后端,后端处理完之后上传到阿里云OSS对象存储,(这里对上传的文件进行论文查重)FlaskVue原创 2022-07-08 11:10:08 · 1086 阅读 · 0 评论 -
Redis 单机(事务,乐观锁,悲观锁)
1. 常用命令String记录字符串/整数/浮点数命令set 添加/修改数据get 获取数据mset 添加多个数据mget 获取多个数据incr 计数加1decr 计数减1incrby 计数加n键命令适用于所有的类型命令del 删除数据exists 判断数据是否存在expire 设置过期时间ttl 获取剩余时间keys 查询满足条件的键hash类似 字典 的结构命令hset 添加字段hget 获取字段hmset 添加多个字段hmget 获取多原创 2022-05-02 16:02:38 · 844 阅读 · 0 评论 -
分布式问题
分布式问题1.分布式事务问题2. 跨节点 Join/排序/分页1.分布式事务问题本地事务不支持跨库操作解决办法从简单到复杂有三种方案1将有关联的表放在一个数据库中同库操作可以使用一个事务如用户表&用户频道表, 文章基本信息表&文章内容表放在一起方案2Mysql从5.6开始支持分布式事务核心是二阶段提交协议(简称 2PC协议 / XA协议)分布式事务会提供一个 事务管理器 来对 各数据库的本地事务进行统一管理, 只有各本地事务都向管理器 预提交 成功后, 事原创 2022-05-01 19:54:02 · 278 阅读 · 0 评论 -
Flask Mysql分布式设计(分片)
分片介绍需求分析用户请求量太大, 会导致web应用无法及时响应 -> 分布式服务器(分散请求到多个服务器上)单表太大, 会导致CRUD都成问题, 索引膨胀, 查询超时 -> 拆分表单库太大, 会导致单库磁盘空间不足; 处理能力有限; 出现IO瓶颈 -> 拆分库作用分片也称为数据拆分 (Shareding), 其主要工作就是对单库单表进行拆分, 多库多表共同组成完整的数据集合分片可以提高吞吐量, 同一时间数据的读写完成量更多, 扩充单机存储的容量/读写速度上限分类原创 2022-05-01 11:00:15 · 533 阅读 · 0 评论 -
Flask Mysql分布式设计(读写分离)
Mysql分布式设计作用对数据备份, 实现高可用 HA (主要)通过读写分离, 提高吞吐量, 实现高性能原理Mysql的复制 是一个异步的复制过程过程本质为 Slave 从 Master 端获取 Binary Log, 然后再在自己身上完全顺序的执行日志中所记录的各种操作MySQL 复制的基本过程如下:1)Slave 上面的 IO 线程连接上 Master, 并请求从指定日志文件的指定位置之后的日志内容;2)Master 接收到来自 Slave 的 IO 线程的请求后, 通过负责原创 2022-04-25 18:20:53 · 1537 阅读 · 0 评论 -
Flask 文章模块
获取文章详情接口设计"猜你喜欢"数据 由推荐系统提供"广告"数据 由广告系统提供# 获取文章详情/app/articles/<article_id># 请求方式 GET# 请求头 Authorization 用户token (可选)# 请求参数 路径参数article_id 文章id# 响应数据 json{ "message": "ok", "data": { "art_id": 138154,原创 2022-04-23 19:17:55 · 925 阅读 · 0 评论 -
Flask 头条模块
获取用户频道"我的频道"展示的是当前用户的频道列表"频道推荐"展示的是 (所有频道 - 当前用户频道) 的频道列表接口设计# 获取用户频道/app/user/channels# 请求方式 GET# 请求头 Authorization 用户token (可选)响应数据 json{ "message": "OK", "data": { "channels": [ { "id": 0,原创 2022-04-15 15:50:20 · 311 阅读 · 0 评论 -
Flask CORS跨域处理
CORS跨域处理由于静态服务器(端口5000)需要向Flask启动的测试服务器(端口8000)发请求, 所以需要进行跨域配置Flask组件flask-cors可以处理跨域问题, 安装 pip install flask-cors在app初始化文件的register_extensions函数中对跨域组件初始化# app/__init__.py...from flask_cors import CORS...def register_extensions(app): """原创 2022-04-10 18:03:30 · 1324 阅读 · 0 评论 -
Flask 用户模块
主要内容获取验证码注册登录获取当前用户信息查看前端交互原型效果接口设计# 获取短信验证码/app/sms/codes/<mobile># 请求方式 GET# 请求参数 路径参数mobile 手机号响应数据 json{ "message": "ok", "data": { "mobile": 135xxxxxxxx }}...原创 2022-04-10 17:23:44 · 1302 阅读 · 0 评论 -
Flask 项目配置搭建
gitflow原创 2022-04-05 10:04:57 · 619 阅读 · 0 评论 -
Flask-SQLAlchemy
认识Flask-SQLAlchemyFlask-SQLAlchemy 是一个为 Flask 应用增加 SQLAlchemy 支持的扩展。它致力于简化在 Flask 中 SQLAlchemy 的使用。SQLAlchemy 是目前python中最强大的 ORM框架, 功能全面, 使用简单。ORM优缺点优点有语法提示, 省去自己拼写SQL,保证SQL语法的正确性orm提供方言功能(dialect, 可以转换为多种数据库的语法), 减少学习成本防止sql注入攻击搭配数据迁移, 更新数据库方便原创 2022-03-27 18:24:51 · 31224 阅读 · 0 评论 -
Flask 视图 请求 序列化
Flask-RESTful 是一个 Flask 扩展,它添加了快速构建 REST APIs 的支持。环境安装pip install flask-restful构建RESTAPI使用 flask-restful 构建RESTAPI只需要进行三步操作创建扩展/组件对象组件对象 = Api(app)定义类视图class 自定义视图类(Resource):组件添加类视图组件对象.add_resource(视图类, URL资源段)from flask import Flask原创 2022-03-27 15:31:24 · 373 阅读 · 0 评论 -
Flask 综合认证 上下文 蓝图 请求钩子
请求钩子请求钩子可以对请求的各阶段进行监听, 方便开发者 针对请求完成一些统一的处理, 以便减少重复代码, 作用类比Django中的中间件开发中中主要会用到以下四种请求钩子:before_request每次执行视图函数之前调用对请求进行一些准备处理如果在该函数中返回了一个响应,视图函数将不再被调用after_request如果没有抛出错误,每次执行视图函数之后(已经包装为响应对象)调用在此函数中可以对响应值在返回之前做最后一步修改处理接受一个参数:包装好的响应对象需要将修改后的响原创 2022-03-26 13:50:07 · 1024 阅读 · 0 评论 -
Flask 路由 请求 响应
路由路由定义路由路由变量路由转换器自定义转换器1. 定义路由定义路由的三个细节路由对应的URL必须以 / 开头app.url_map 获取所有路由规则路由规则中主要包含 URL资源段、支持的请求方式、视图函数标记 三部分内容app.route() 的 methods参数 指定路由支持的请求方式from flask import Flaskapp = Flask(__name__)# 1.路由对应的URL必须以/开头# 2.通过app的url_map属性获取所有的路由原创 2022-03-25 14:07:36 · 1058 阅读 · 0 评论 -
认识Flask
Flask框架介绍使用flask框架实现web应用得基本功能能够使用flask-restful扩展包实现基于REST风格得接口能够使用flasj-sqlalchemy扩展包完成数据库得常见操作Flask使用python语言编写得轻量级web框架Flask本身相当于一个内核,主要实现了路由分发和模板渲染功能,分别继承自Werkzeug 和 Jinja2模块包, 这两个也是Flask框架的核心。虽然核心精简, 但flask提供了非常好的扩展机制, 开发中的各类需求基本都有对应的官方/第三方扩展可原创 2022-03-24 09:30:01 · 270 阅读 · 0 评论