flask集成swagger
flask-siwadochttps://zhuanlan.zhihu.com/p/529381856
把sqlalchemy对象转化成json数据类型
把sqlalchemy对象转化成json数据类型123456789101112131415161718192021def to_json_all(msg: list): data = [] if type(msg) == list: for i in range(len(msg)): temp_dict = {} j = 0 for k, v in msg[i].__dict__.items(): if j > 0: temp_dict[k] = v j += 1 data.append(temp_dict) else: temp_dict = {} j = 0 for k, v in msg.__dict__.items(): if j > 0: ...
mAP定义及相关概念
mAP定义及相关概念
P => precision,即 准确率
R => recall,即 召回率
PR曲线 = >即 以 precision 和 recall 作为 纵、横轴坐标 的二维曲线。一般来说,precision 和 recall 是 鱼与熊掌 的关系
AP值 => Average Precision,即 平均精确度 。 如何衡量一个模型的性能,单纯用 precision 和 recall 都不科学。于是人们想到,哎嘛为何不把 PR曲线下的面积 当做衡量尺度呢?于是就有了 AP值 这一概念。这里的 average,等于是对 precision 进行 取平均 。
mAP值 =>Mean Average Precision,即 平均AP值 。
PR曲线: Precision-Recall曲线
TP: IoU>0.5的检测框数量(同一Ground Truth只计算一次)
FP: IoU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量
FN: 没有检测到的GT的数量
m ...
【Linux】解压分卷压缩的zip文件
由于文件大小限制,先对文件进行了100MB的分卷压缩,得到文件:test.zip、test.z01、test.z02上传至linux系统后,对文件进行解压:
1234# 1.先合并文件cat test.z* > testall.zip# 2.解压unzip testall.zip
flask+nginx获取用户真实ip
flask+nginx获取用户真实ip原文:https://blog.csdn.net/xwd127429/article/details/105932045应用使用flask框架开发,使用uswgi启动,使用supervisor管理进程,使用nginx代理服务。
flask本身可以通过request.remote_addr获取用户的ip,但是通过nginx代理之后,获取到的是本地地址或者局域网地址。
为了在nginx代理的环境下获取用户真实ip,可以通过以下做法实现:
nginx 配置1234proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
flask 获取用户真实ip1ip = request.headers['X-Real-Ip']
python 装饰器
python 装饰器原文:https://blog.csdn.net/weixin_40576010/article/details/88639686==装饰器的作用: 在不改变原有功能代码的基础上,添加额外的功能,如用户验证等。@wraps(view_func)的作用: 不改变使用装饰器原有函数的结构(如name, doc)==
123456789101112131415161718192021def decorator(func): """this is decorator __doc__""" def wrapper(*args, **kwargs): """this is wrapper __doc__""" print("this is wrapper method") return func(*args, **kwargs) return wrapper@decoratordef test( ...
flask_wtf 表单
flask_wtf 表单forms.py123456789from flask_wtf import FlaskFormfrom wtforms import StringField, PasswordField, BooleanField, SubmitFieldfrom wtforms.validators import length, email, DataRequiredclass LoginForm(FlaskForm): username = StringField('Username', validators=[DataRequired()]) password = PasswordField('Password', validators=[DataRequired(), length(min=6, max=20)]) remember = BooleanField('Remember me') submit = SubmitField('Log in')
视图函数12 ...
Jetson AGX Xavier刷机和编译Paddle
Jetson AGX Xavier刷机和编译Paddle转载: https://blog.csdn.net/qianbin3200896/article/details/115329873
Nginx代理Gunicorn
Nginx代理Gunicorn123456789101112131415161718server { listen 80; server_name 127.0.0.1; allow 127.0.0.1; location / { proxy_pass http://127.0.0.1:8000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /static { alias /home/greyli/bl ...
Linux-磁盘挂载
Linux-磁盘挂载转载:https://blog.csdn.net/qq_35233353/article/details/122971911
一、挂载U盘
插入U盘,打开Linux终端
输入命令
1sudo fdisk -l
从返回结果中可查看U盘分区名称。比如sdb
输入命令
1sudo mount /dev/sdb /mnt
输入命令
1cd /mnt
即可进入U盘
二、新增磁盘挂载
查看新增磁盘的分区名
123sudo fdisk -l# 比如 /dev/sdb
对硬盘进行分区
12345678sudo fdisk /dev/sdb# 输入参数 m (显示帮助可不输入)# 输入参数 n (新建分区)# 输入参数 e (extended扩展分区,p primary 主分区)# 输入参数 1 (1-4 1表示只分一个区)# 输入参数 enter键跳过 (表示全部,也可输入起柱面cylinder号来完成分区,该号不能大于磁盘末尾号)# 输入参数 w (保存)
新建目录,进行将分区挂载到目录
1234sudo mkdir /data # 新建挂 ...