热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【FastAPI】HelloWorld

FastAPIFastAPI框架,高性能,易学,快速编码,可投入生产FastAPI是一种现代,快速ÿ

FastAPI

FastAPI框架,高性能,易学,快速编码,可投入生产
FastAPI是一种现代,快速(高性能)的Web框架,用于基于标准Python类型提示使用Python 3.6+构建API。

文档:https : //fastapi.tiangolo.com
源代码:https : //github.com/tiangolo/fastapi


Hello World

集各大框架于一身,站在巨人肩膀上的FastAPI环境搭建起来还是比较简单的。
短短几行代码就可以完成接口开发,与接口文档的开发。

from fastapi import FastAPIapp = FastAPI()@app.get("/")
def read_root():return {"Hello": "World"}@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):return {"item_id": item_id, "q": q}if __name__ == '__main__':import uvicornuvicorn.run(app, host="0.0.0.0", port=8000, workers=4)

API

http://127.0.0.1:8000/


交互式API文档

http://127.0.0.1:8000/docs
在这里插入图片描述


Windows可能的报错


报错提示1

Traceback (most recent call last):File "D:/coding/vn-var-test/test/main.py", line 19, in <module>uvicorn.run(app, host&#61;&#39;127.0.0.1&#39;, port&#61;8000, workers&#61;3)File "D:\Python\Python37\lib\site-packages\uvicorn\main.py", line 272, in runsocket &#61; config.bind_socket()File "D:\Python\Python37\lib\site-packages\uvicorn\config.py", line 216, in bind_socketsock.bind((self.host, self.port))
OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。

报错提示2

由于添加了异常值处理中间件&#xff0c;报错信息看起来是序列化的问题&#xff0c;和报错提示1的问题一样

Traceback (most recent call last):File "D:/coding/ivc/app.py", line 53, in <module>uvicorn.run(app, host&#61;"127.0.0.1", port&#61;8000, workers&#61;4)File "D:\Python\Python37\lib\site-packages\uvicorn\main.py", line 274, in runsupervisor.run(server.run, sockets&#61;[socket])File "D:\Python\Python37\lib\site-packages\uvicorn\supervisors\multiprocess.py", line 33, in runprocess.start()File "D:\Python\Python37\lib\multiprocessing\process.py", line 112, in startself._popen &#61; self._Popen(self)File "D:\Python\Python37\lib\multiprocessing\context.py", line 223, in _Popenreturn _default_context.get_context().Process._Popen(process_obj)File "D:\Python\Python37\lib\multiprocessing\context.py", line 322, in _Popenreturn Popen(process_obj)File "D:\Python\Python37\lib\multiprocessing\popen_spawn_win32.py", line 65, in __init__reduction.dump(process_obj, to_child)File "D:\Python\Python37\lib\multiprocessing\reduction.py", line 60, in dumpForkingPickler(file, protocol).dump(obj)
AttributeError: Can&#39;t pickle local object &#39;FastAPI.setup.<locals>.openapi&#39;

解决方式

uvicorn.run(app, host&#61;"0.0.0.0", port&#61;8000, workers&#61;4)# 替换为uvicorn.run(app, host&#61;"0.0.0.0", port&#61;8000)

推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
  • 大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 解决 Windows Server 2016 网络连接问题
    本文详细介绍了如何解决 Windows Server 2016 在使用无线网络 (WLAN) 和有线网络 (以太网) 时遇到的连接问题。包括添加必要的功能和安装正确的驱动程序。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
author-avatar
sasame
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有