Python后端服务FastApi

2/22/2024 python后端
(adsbygoogle = window.adsbygoogle || []).push({});

# 简介

是python的一个后端服务框架,类似于java的springBoot

github星星对比 FastApi 68.6k

django 75.8k flask 65.8k

# 后端服务

# ORM

# 日志

# 配置

.env文件,密码等安全要求高的使用环境变量

# 依赖

在requirements.txt里面配置

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
1

# dockerfile

# 并发性能

如果不配置,超过服务器资源就会报503 线程数默认40 启动参数说明,如果有类似于springboot的配置文件就好了

app:指定应用app,'脚本名:FastAPI实例对象'、FastAPI实例对象

host: 字符串,允许被访问的形式 locahost、127.0.0.1、当前IP、0.0.0.0,默认为127.0.0.1,

port:数字,应用的端口,默认为8000,

uds:字符串,socket服务绑定到UNIX的域名

fd:数字,从此文件描述符绑定到socket

loop:[auto|asyncio|uvloop],事件循环模式,默认为auto

http:[auto|h11|httptools],HTTP协议实现,默认为auto

ws:[auto|none|websockets|wsproto],WebSocket协议实现,默认为auto

ws-max-size:数字,WebSocket最大消息大小(字节),默认值为16777216

lifespan:[auto|on|off],生命周期实施,默认为auto

env-file:PATH,环境配置文件

log-config:PATH,日志配置文件。支持的格式:.ini、.json、.yaml,默认为fastapi默认的log配置

log-level:[critical|error|warning|info|debug|trace],日志级别,默认info

access-log:boolean,access log日志的开关,默认为True

use-colors:boolean,彩色日志的开关,(前提需指定log-config),默认为None

interface:[auto|asgi3|asgi2|wsgi],选择ASGI3、ASGI2或WSGI作为应用程序接口,默认为auto

debug:是否使用debug模式,默认False,

reload:boolean,当代码发生更时,是否自动重启,默认False,

reload_dirs:字符串,设置重新加载目录,由源码可见,当没有传这个参数的实时,将取当前工作目录

reload-delay:float,每隔多久检测代码是否有变动,默认0.25秒

workers:数字,工作进程数。默认为$WEB\U CONCURRENCY环境变量(如果可用),或1。对于--reload无效。

proxy-headers:boolean,启用/禁用X-Forwarded-Proto、X-Forwarded-For、X-Forwarded-Port以填充远程地址信息,默认为True

forwarded-allow-ips:字符串,用逗号分隔的IP列表以信任代理标头。默认为$FORWARDED\u ALLOW\u IPS环境变量(如果可用),或 None,为None时,代码里面则取127.0.0.1

root-path:字符串,为安装在给定URL路径下的应用程序设置ASGI“根路径”。

limit-concurrency:数字,在发出HTTP503响应之前,允许的最大并发连接数或任务数。默认为None

limit-max-requests:数字,达到多少请求数则终止进程,默认为None

backlog:数字,等待处理的最大连接数,默认为2048

timeout-keep-alive:数字,如果在此超时时间内未收到新数据,则关闭保持活动状态的连接,默认为5

ssl-keyfile:字符串,SSL密钥文件,默认为None

ssl-certfile:字符串,SSL证书文件,默认为None

ssl-keyfile-password:字符串,SSL密钥文件密码,默认为None

ssl-version:数字,要使用的SSL版本(详见stdlib SSL模块),默认为2

ssl-cert-reqs:数字,是否需要客户端证书(详见stdlib SSL模块),默认为0

ssl-ca-certs:字符串,CA证书文件

ssl-ciphers:字符串,要使用的CA证书文件密码(详见stdlib SSL模块),默认为TLSv1

header:字典,自定义响应头信息,键值对的形式,默认为None

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

workers 建议配置为CPU核心数*2+1 limit-concurrency,根据服务器性能,超过配置后报503 Service Unavailable

启动命令参考

uvicorn  main:app --workers 3 --limit-concurrency 200 --host  0.0.0.0  --port  8080
1