利用set_cookie,后端向前端传json数据时,字符串会加上双引号
参考https://blog.csdn.net/chinabestchina/article/details/80905750
同样也是设置了一个邮箱地址,然后发现形如"abc"的字符串不会加双引号,但邮箱地址会加。原因是目前大多数浏览器所使用的cookie,对于特殊字符如@,是不兼容的,会自动加上双引号。
解决方案有两种:
方法1:读取cookie时,将双引号去掉;
方法2:在设置cookie值时,先编码encode,读取值时,则相应的解码decode。
但目前还没有在js中实现。
Token验证一直失败,显示过期
- 将jwt放在在线解析网页中,获取exp,即过期时间戳。
- 将Token过期时间戳放到搜索到的时间戳在线转换网页中,查看具体过期时间。
- 发现在接收到token的时间就已经过期了。
- 检查mac时间,发现比实际的快2min。虽然这不是根本原因,但还是调一下为好。
- 参考https://blog.csdn.net/ATangSir/article/details/106780242
使用命令行同步mac时间
# 方法一:使用apple time官网协议
sudo sntp -sS time.apple.com
# 方法二:外网不好用时,使用阿里云IP
sudo sntp -sS 182.92.12.11
gunicorn启动flask项目所有route都404
因为route写在了run.py里, 一般是要写进__init__.py里才能找到。
所以在app初始化之后会加入from run import *
最终是这样的⬇️
- app/init.py
app = Flask(__name__)
...
from run import *
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
- run.py
from app import app
@app.route('/')
def index():
return "hello world"
- config.py (这里注意因为我是要部署到k8s上的,不能后台运行,必须一直跑着)下边这个文件原作者Together_CZ
文章地址:Python之web服务利器Flask生产环境部署实践【基于gunicorn部署生产环境】
写的非常详细!赞👍
import os
import gevent.monkey
gevent.monkey.patch_all()
import multiprocessing
loglevel = 'debug'
#监听地址+端口
bind = "0.0.0.0:5000"
#定义日志存储
if not os.path.exists('log/'):
os.makedirs('log/')
pidfile = "log/gunicorn.pid"
#访问日志
accesslog = "log/access.log"
#错误日志
errorlog = "log/debug.log"
#开启后台运行,默认值为False
daemon = False
#启动的进程数,推荐值为:CPU核数*2+1
workers = 4
#指开启的每个工作进程的模式类型,默认为sync模式,也可使用gevent模式
worker_class = 'gevent'
x_forwarded_for_header = 'X-FORWARDED-FOR'
使用命令gunicorn -c config.py app:app
启动,此处app:app中,第一个app为flask项目实例所在的包,第二个app为生成的flask项目实例