【Python】FastApi框架搭建部署

news2024/10/7 4:31:47

FastApi 是一个现代、快速(高性能)的 web 框架,用于基于标准Python构建的API。

官方网址:FastAPI

1.安装

1.1 环境信息

# Python版本
3.8.0

1.2 安装 FastApi

pip install fastapi
# uvicorn 作为服务启动fastapi框架
pip install uvicorn

2.使用

# 导入FastAPI第三方包
from fastapi import FastAPI
# 创建FastAPI对象
app = FastAPI()
# 路由地址
@app.get("/")
# 后端方法
def read_root():
    return {"Hello": "World"}

3.部署

3.1 Gunicorn

Gunicorn 是一个 unix 上被广泛使用的高性能 Python WSGI Unix Http Server,和大多数的 Web 框架兼容,并具有实现简单,轻量级,高性能的特点。

3.1.1 安装 Gunicorn
pip install uvicorn
pip install gunicorn
3.1.2 运行项目
3.1.2.1 以配置文件的方式运行项目

配置文件

# -*- coding=utf-8 -*-
import os

# 设置守护进程
daemon = True
# 监听内网端口
bind = '0.0.0.0:8000'
# 进程文件目录
pidfile = './gunicorn.pid'
chdir = './'
# 工作模式
worker_class='uvicorn.workers.UvicornWorker'
# 并行工作进程数
workers = 3
# 线程数
threads = 2
# 设置最大并发量
worker_connections = 1000
loglevel = 'debug'
access_log_format = '%(t)s %(p)s %(h)s "%(r)s %(s)s %(L)s %(b)s %(f)s"  "%(a)s"'
# 设置日志保存路径
log_dir = './log'
if not os.path.exists(log_dir):
    os.mkdir(log_dir)
accesslog = './log/gunicorn_access.log'
errorlog = './log/gunicorn_error.log'

运行项目

gunicorn main:app -c gunicorn.py

3.1.2.2 直接运行项目
gunicorn main:app -b 0.0.0.0:8000 -w 4 -k uvicorn.workers.UvicornWorker --daemon

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1405655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【牛客】几何糕手、国际裁判带师、数位dp?、灵异背包、矩阵快速幂签到、第一次放学

文章目录 《几何糕手》题目描述思路代码 《国际裁判带师》题目描述思路代码 《数位dp?》题目描述思路代码 《灵异背包》题目描述思路代码 《矩阵快速幂签到》题目描述思路代码 《第一次放学》题目描述思路代码 《几何糕手》 题目链接 题目描述 “芝士肾么?” 地…

Mysql的骚操作说明

Mysql的常规操作 记录些不常用,但是很实用的操作,旨在在MySQL语言能解决的批量操作的问题,不动用其他动态或静态语言的辅助。 1、FROM_UNIXTIME 时间戳转时间格式 select scode,sid,gender,type,FROM_UNIXTIME(report_time) as report_time,FROM_UNIXTIME(add_time) as add…

基于SpringBoot的教务管理系统设计与实现(源码+调试)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的教务管…

finalshell连接linux的kali系统

kali的ssh服务似乎是默认关闭的,笔者在玩CentOS系统时可以直接用finalshell完成连接,但kali不行,需要先手动开启ssh服务。 开启kali的ssh服务 输入【ssh start】命令开启ssh服务,可以用【ssh status】命令查看ssh状态&#xff0c…

【Linux】vim 操作指令详解

Linux 1 what is vim ?2 vim基本概念3 vim的基本操作 !3.1 vim的快捷方式3.1.1 复制与粘贴3.1.2 撤销与剪切3.1.3 字符操作 3.2 vim的光标操作3.3 vim的文件操作 总结Thanks♪(・ω・)ノ感谢阅读下一篇文章见!…

API协议设计的十种技术

文章目录 前言一、REST二、GraphQL三、gRPC(google Remote Procedure Calls)四、Webhooks五、服务端的事件发送——SSE(Server-sent Events)六、EDI(Electronic Data Interchange)七、面向API 的事件驱动设…

【.NET Core】深入理解异步编程模型(APM)

【.NET Core】深入理解异步编程模型(APM) 文章目录 【.NET Core】深入理解异步编程模型(APM)一、APM概述二、IAsyncResult接口2.1 BeginInvoke2.2 EndInvoke2.3 IAsyncResult属性2.4 IAsyncResult异步演示 三、通过结束异步操作来…

【Linux】yum本地配置

配置将来是在干什么? yum会根据/etc/yum.repos.d/该路径下面的配置文件,来构成自己的下载路径,(根据OS版本,根据你要下载的软件),yum帮助我们下载,安装 一般的机器,内置…

Operation

contents 服务器一、相关概念1.1 云服务器与实例1.2 关于域名解析延时与80端口1.3 关于备案1.4 关于SSL证书1.5 关于SSL证书的签发1.6 关于SSL证书的部署1.7 关于LNMP和LAMP1.8 关于bt面板 二、单服务器单一级域名多网站2.1 创建多个二级域名2.2 解析二级域名绑定到服务器上2.3…

【QML COOK】- 011-动画插值设置

QML中内置了一些动画插值类型。不同的插值类型可以通过Animation的easing属性设置。具体可见:PropertyAnimation QML Type | Qt Quick 6.6.1 1. 创建工程在Main.qml,中编写如下代码 import QtQuickWindow {width: 1000height: 100visible: truetitle: …

数字人直播系统跟无人直播系统的区别是什么?如何选择呢?

有媒体预测,未来几年,数字人工智能将呈现爆发式的增长,数字人系统将广泛应用于各个行业,比如数字人直播,数字人短视频播报,数字人制作的海报宣传等等,当然,这其中应用最广的当属数字…

Python实现离散选择Logit模型(Logit算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 Logit模型(Logit model,也译作“评定模型”,“分类评定模型”&…

从想象到现实:Midjourney的AI图像生成之旅

从想象到现实:Midjourney的AI图像生成之旅 继ChatGPT之后,Midjourney作为AI艺术的璀璨明珠,吸引了全球范围内的广泛关注。这款工具通过先进的AI技术,将用户输入的文字描述转化为精美绝伦的图像。无论是风景画、肖像画还是抽象艺术…

CentOS7的安装配置

一. CentOS7的安装【在虚拟机中】 首先创建一个虚拟机, 这个没什么好说的,基本上都是下一下一步安装。 注意它的存放位置最好不要放在C盘, 以及开始创建时选择”稍后安装操作系统“ 创建完成后再配置镜像文件 开启虚拟机,继续下…

【K8S】Kubernetes 中滚动发布由浅入深实战

目录 一、Kubernetes中滚动发布的需求背景1.1 滚动发布1.2 滚动发布、蓝绿发布、金丝雀发布的区别 二、Kubernetes中实现滚动发布2.1 定义Kubernetes中的版本2.2 创建 Deployment 资源对象2.2.1 在 Yaml 中定义 Deployment 资源对象2.2.2 执行命令创建 Deployment 资源对象 三、…

三、MySQL之创建和管理表

一、基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只 能是一团乱麻,无从下手。 在 MySQL 中, 一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。 …

基于SpringBoot Vue航空机票预订系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

【Linux与windows的文件互相传输】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 关于 rzsz 注意事项 查看软件包 使用命令 下载到本地(使用sz的命令) 本地文件上传到Linux中(使用rz命令) 方法一…

无刷电机学习-方波电调 程序篇1(AM32)

一、AM32简介 AM32 固件专为 ARM 处理器设计,用于控制无刷电机 (BLDC)。该固件旨在安全、快速、平滑、快速启动和线性油门。它适用于多种车辆类型和飞行控制器。 AM32具有以下特点: 可通过 betaflight 直通、单线串行或 arduino 升级固件伺服 PWM、Dsh…

Druid集群搭建手册

1. Java环境安装和配置 建议使用JDK1.8。可以参考《Linux安装JDK完整步骤》。 2. 创建用户 创建druid用户,用来管理druid相关的服务。执行命令: useradd druid #创建用户 passwd druid #设置druid用户密码 3. Zookeeper安装和配置 Druid的服务套…