当我谈Flask的时候我在谈些什么

本文探讨了如何使用Flask作为后端服务,React作为前端界面,构建一个前后端完全分离的系统。文章详细介绍了技术选型、注意事项、部署方案及核心功能实现,如签名检查、登录状态判断、跨域限制解除等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标:使用Flask搭建一个前后端完全分离的系统
(灵感来自于企业级springboot+react)
https://developer.okta.com/blog/2018/12/20/crud-app-with-python-flask-react#define-the-python-model-schemas
技术:
前端:react
后端:flask

要注意的事项:
Flask自带的默认的服务器是单线程模式的,也就是说,如果同一时间有多个请求,那么flask自带服务器只会串行处理。

生产环境的部署
可以热部署吗?在不中断服务的情况下进行
重新发布的项目的本质就是进程的重启
gunicorn + supervisor

框架要实现的基本需求
基本签名检查
登录状态判断
解除同源策略的限制
返回一个固定格式的json格式数据
全局异常处理
mysql数据库访问
基本的分页,数据源处理,数据源切换
redis访问
oss访问
多个环境切换
生产环境部署
会用到的一些包和技术
flask
marshmallow
flask-cors
pyjwt

Flask的一些概念

from flask import g, request 中的g和request
before_request
after_request
程序上下文,请求上下文
current_app
g
request
session

路由映射
使用app.url_map可以查看映射表

模版jinja2
很重要的一个模版函数super(),当你想在父模版的基础上进行修改,同时呢又不想重新整个父模版,可以调用super()

数据库
pip install flask-sqlalchemy
flask-sqlalchemy 多条件查询的使用技巧

如何能够实现mybatis那种如果参数为空或者为null,这个条件就不算?
在使用sqlalchemy的时候可以动态的构造关键字参数字典,最后把参数字典传给filter_by

        if app is not None and app != '':
            tmp['app'] = app
        if env is not None and env != '':
            tmp['env'] = env
        print(tmp)
        urls = FrontUrl.query.filter_by(**tmp).order_by(FrontUrl.weight.desc())
        return render_template("ql/url.html", urls=urls)

2019-03-23我忽然意识到及时回信息的重要性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值