当前位置: 首页 > news >正文

fastapi的docs页面是空白解决

环境:openEuler、python 3.11.6、fastapi 0.115.2

背景:居家办公,默认搭建的fastapi的docs接口为空白

时间:20241016

说明:网上很多教程的缺点是复杂(但是能够了解的更清楚),使用官方文档解决很便利

官方文档地址:Custom Docs UI Static Assets

 1、搭建环境

 安装相应的python包

pip install fastapi uvicorn

创建main文件:

# main.py
from fastapi import FastAPI
app = FastAPI()@app.get("/") # 根路由
async def root():return "I want to change the world"if __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)# 启动命令:uvicorn main:app --reload --host 0.0.0.0 --port 8000

运行测试:

说明启动成功

(venv) [jack@Laptop-L14-gen4 fastTest]$ uvicorn main:app --reload --host 0.0.0.0 --port 8000
INFO:     Will watch for changes in these directories: ['/home/jack/fastTest']
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [6119] using StatReload
INFO:     Started server process [6121]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

 浏览器查看

 至此,说明基本环境搭建完毕

2、问题发现

默认访问 http://172.26.20.199:8000/docs 应该如下:

可问题却是空白

 原因分析:

fastapi的文件是提供的CDN为国外的网址,偶尔可能存在网络延迟,导致为空白,使用F12可以看到是文件获取不到

3、解决问题

第一种方式的再试试,存在这种可能性

第二种方式为复制官方文档提供的部分代码:

# 增加的代码部分from fastapi.openapi.docs import (get_redoc_html,get_swagger_ui_html,get_swagger_ui_oauth2_redirect_html,
)app = FastAPI(docs_url=None, redoc_url=None)@app.get("/docs", include_in_schema=False)
async def custom_swagger_ui_html():return get_swagger_ui_html(openapi_url=app.openapi_url,title=app.title + " - Swagger UI",oauth2_redirect_url=app.swagger_ui_oauth2_redirect_url,swagger_js_url="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js",swagger_css_url="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css",)

上述代码完全无脑复制到你的main.py中,覆盖app = 这一行即可,复制完如下:

# main.py
from fastapi import FastAPIfrom fastapi.openapi.docs import (get_redoc_html,get_swagger_ui_html,get_swagger_ui_oauth2_redirect_html,
)app = FastAPI(docs_url=None, redoc_url=None)@app.get("/docs", include_in_schema=False)
async def custom_swagger_ui_html():return get_swagger_ui_html(openapi_url=app.openapi_url,title=app.title + " - Swagger UI",oauth2_redirect_url=app.swagger_ui_oauth2_redirect_url,swagger_js_url="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js",swagger_css_url="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css",)@app.get("/") # 根路由
async def root():return "I want to change the world"if __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)# 启动命令:uvicorn main:app --reload --host 0.0.0.0 --port 8000

保存,fastapi会自动重新加载,刷新网页即可。

相关文章:

fastapi的docs页面是空白解决

环境:openEuler、python 3.11.6、fastapi 0.115.2 背景:居家办公,默认搭建的fastapi的docs接口为空白 时间:20241016 说明:网上很多教程的缺点是复杂(但是能够了解的更清楚),使用…...

浙大数据结构:11-散列4 Hashing - Hard Version

这道题主要在于思路&#xff0c;感觉像个模拟题&#xff0c;用到了线性探测的算法 机翻 1、条件准备 visit数组看这个位置有没有放进来数&#xff0c;num存非负整数&#xff0c;s存未到放入时机的数。 answer存答案。n为总共数量。 #include <iostream> #include<…...

pm2 守护http-server

PM2&#xff08;Process Manager 2&#xff09;是一个用于Node.js应用程序的进程管理器。以下是使用PM2守护HTTP服务器的步骤&#xff1a; 1. 安装PM2 如果你还没有安装PM2&#xff0c;可以使用以下命令安装&#xff1a; npm install pm2 -g 2. 启动HTTP服务器 你需要一个HTT…...

国外电商系统开发-运维系统应用管理

还记得您常用的 service httpd start 、service sshd stop这样的命令吗&#xff1f;这些都是在停止启动服务&#xff0c;为了让研发人员&#xff0c;或者是快速操作服务&#xff0c;这里给大家制定了简单的应用管理。在这里&#xff0c;您可以把上面的命令加入进来&#xff0c;…...

剖析线程池实现原理

前置推荐阅读&#xff1a;java并发之线程池使用-CSDN博客 自定义实现一个带监控的线程池 首先我们继承ThreadPoolExecutor&#xff0c;实现构造函数以及重写beforeExecute和afterExecute两个函数&#xff0c;具体调用我们会在代码实现层面进行详细的分析。 import java.util.…...

【中危】Oracle TNS Listener SID 可以被猜测

一、漏洞详情 Oracle 打补丁后&#xff0c;复测出一处中危漏洞&#xff1a;Oracle TNS Listener SID 可以被猜测。 可以通过暴力猜测的方法探测出Oracle TNS Listener SID&#xff0c;探测出的SID可以用于进一步探测Oracle 数据库的口令。 建议解决办法&#xff1a; 1. 不应该使…...

三维测量与建模笔记 - 简介

计算机视觉相关主题 主要有两个最主要的层面&#xff0c;几何和语义。几何层面描述了客观事实&#xff0c;比如物体的距离、大小、形状、位置等。语义层面则是从人类抽象出的概念出发&#xff0c;描述了物体是什么、行为是什么、为什么&#xff0c;比如自动驾驶场景中识别出信号…...

Glide 简易教程

文章目录 1 引入依赖2 图片形状2.1 圆形 CircleCrop2.2 旋转 Rotate2.3 圆角 RoundedCorners2.4 自定义圆角 GranularRoundedCorners 1 引入依赖 implementation("com.github.bumptech.glide:glide:4.16.0")2 图片形状 2.1 圆形 CircleCrop Glide.with(this).load…...

flutter 使用三方/自家字体

将字体放入assets/fonts下 在pubspec.yaml文件中flutter下添加如下代码&#xff1a; flutter:fonts:- family: MyCustomFontfonts:- asset: assets/fonts/MyCustomFont.ttf 在flutter Text widget中使用字体 import package:flutter/material.dart;void main() > runApp(…...

2024台州赛CTFwp

备注&#xff1a; 解题过程中&#xff0c;关键步骤不可省略&#xff0c;不可含糊其辞、一笔带过。解题过程中如是自己编写的脚本&#xff0c;不可省略&#xff0c;不可截图&#xff08;代码字体可以调小&#xff1b;而如果代码太长&#xff0c;则贴关键代码函数&#xff09;。…...

词根plac-和place、please

英文有一个词根和单词place(v.放&#xff0c;放置 n.位置&#xff0c;地方&#xff1b;位&#xff0c;职位)长得很像&#xff0c;这个词根就是plac-&#xff0c;它有两个语义&#xff1a;高兴&#xff0c;愉悦&#xff1b;平静&#xff0c;抚平。 其实&#xff0c;place这个单…...

ubuntu下route命令详解

buntu下route命令详解 1、显示路由表 route -n2、临时路由设置&#xff0c;重启网卡失效#添加一条路由(发往192.168.62这个网段的全部要经过网关192.168.1.1)route add -net 192.168.62.0 netmask 255.255.255.0 gw 192.168.1.1#删除一条路由 删除的时候不用写网关route del …...

13.java面向对象:面向对象的三大特征

java面向对象&#xff1a;面向对象的三大特征 面向对象的三大特征1.封装get和set规范属性的合法化 2.继承类继承子类调用父类方法super的用法通过super调用父类public的属性super注意点super对比this 方法重写静态方法中奇怪的现象非静态方法 3.多态多态存在的条件多态中成员访…...

【VUE】Vue中的内置组件

Vue2中的内置组件&#xff1a; <component>&#xff1a;动态组件&#xff0c;可以根据传递的 is 属性值渲染不同的组件。<transition>&#xff1a;过渡动画组件&#xff0c;可以在元素插入、更新或移除时添加动画效果。<transition-group>&#xff1a;过渡动…...

若依框架篇-若依框架搭建具体过程、后端源代码分析、功能详解(权限控制、数据字典、定时任务、代码生成、表单构建、接口测试)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 若依框架概述 1.1 若依构建 1.2 后端项目搭建 1.3 前端项目搭建 2.0 利用若依框架生成前后端代码案例 3.0 功能详解 3.1 功能详解 - 权限控制 3.1.1 使用权限控制…...

恢复已删除文件的 10 种安卓数据恢复工具

由于我们现在在智能手机上存储了大量重要文件&#xff0c;因此了解数据恢复工具变得很重要。您永远不会知道什么时候需要使用 安卓 数据恢复工具。 由于不乏 Windows 数据恢复工具&#xff0c;因此从崩溃的计算机中恢复文件很容易。但是&#xff0c;当涉及到从 安卓恢复数据时…...

Internet Download Manager2025快速下载,新功能解锁!

&#x1f31f;下载界的“速度与激情”&#xff1a;Internet Download Manager超燃体验&#xff01;&#x1f525; 嘿&#xff0c;各位小伙伴们&#xff01;&#x1f44b;今天我要来给你们安利一个让我上网冲浪效率翻倍的神奇软件——Internet Download Manager&#xff08;简称…...

传感器应用注意事项

一、通断型传感器 多数活动部件可直接作为导电材料的传感器为通断型传感器&#xff0c;在受力的条件下&#xff0c;其两个引脚的通断状态会发生改变。 常见通断型传感器 单通道按键多通道按键拨码开关接线帽磁力开关轻触开关… 通断型传感器无需供电&#xff0c;其控制环路…...

PayPal美区账号注册指南

PayPal作为一种便捷的在线支付方式&#xff0c;受到了广大用户的青睐。特别是对于那些需要在美国购物或者进行交易的人来说&#xff0c;注册并正确使用美国地区的PayPal账户显得尤为重要。本次小编会教大家如何注册和使用美区PayPal账户&#xff0c;并讨论是否需要“养号”的问…...

《鸟哥的Linux私房菜基础篇》---1 Linux的介绍与如何开启Linux之路

目录 一、Linux的简单介绍 1、Linux的简介 2、Linux的起源与发展 3、主要特点 4、应用场景 二、开启Linux之路 1、学习Linux的相关知识 2、正规表示法、管线命令、数据流重导向 前言 整体大纲预览 一、Linux的简单介绍 1、Linux的简介 &#xff08;1&#xff09;Linu…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量数据库中的关键作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架构简介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...

李沐--动手学深度学习--GRU

1.GRU从零开始实现 #9.1.2GRU从零开始实现 import torch from torch import nn from d2l import torch as d2l#首先读取 8.5节中使用的时间机器数据集 batch_size,num_steps 32,35 train_iter,vocab d2l.load_data_time_machine(batch_size,num_steps) #初始化模型参数 def …...

GC1808:高性能音频ADC的卓越之选

在音频处理领域&#xff0c;高质量的音频模数转换器&#xff08;ADC&#xff09;是实现精准音频数字化的关键。GC1808&#xff0c;一款96kHz、24bit立体声音频ADC&#xff0c;以其卓越的性能和高性价比脱颖而出&#xff0c;成为众多音频设备制造商的理想选择。 GC1808集成了64倍…...

【RabbitMQ】- Channel和Delivery Tag机制

在 RabbitMQ 的消费者代码中&#xff0c;Channel 和 tag 参数的存在是为了实现消息确认机制&#xff08;Acknowledgment&#xff09;和精细化的消息控制。 Channel 参数 作用 Channel 是 AMQP 协议的核心操作接口&#xff0c;通过它可以直接与 RabbitMQ 交互&#xff1a; 手…...

matlab实现DBR激光器计算

DBR激光器计算程序。非常值得参考的程序。DBR激光器程序 DBR计算/1.txt , 2056 DBR计算/4.asv , 22 DBR计算/4.txt , 32 DBR计算/GetDeviceEfficiency.asv , 2012 DBR计算/GetDeviceEfficiency.m , 2014 DBR计算/GetOneLayerArray.asv , 837 DBR计算/GetOneLayerArray.m , 836…...