我正在尝试(失败)设置一个简单的FastAPI项目,并使用uvicorn运行它。这是我的代码:
from fastapi import FastAPI
app = FastAPI()
app.get('/')
def hello_world():
return{'hello':'world'}
app.get('/abc')
def abc_test():
return{'hello':'abc'}
这是我从终端运行的内容:
PS C:\Users\admin\Desktop\Self pace study\Python\Dev\day 14> uvicorn server2:app
INFO: Started server process [3808]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: 127.0.0.1:60391 - "GET / HTTP/1.1" 404 Not Found
INFO: 127.0.0.1:60391 - "GET /favicon.ico HTTP/1.1" 404 Not Found
如你所见,我找不到404。原因可能是什么?一些与网络相关的东西,可能是防火墙/vpn阻止此连接或其他什么?我是新来的。提前谢谢!
现在你可能已经明白了。为了让MWE运行,您需要在每个函数定义之前使用微服务的endpoint装饰器。下面的片段可以解决您的问题。它假定您具有以下结构:
.
+-- main.py
+-- static
| +-- favicon.ico
+-- templates
| +-- index.html
from fastapi import FastAPI
from fastapi.responses import HTMLResponse, FileResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
import os
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
@app.get('/')
def hello_world():
return{'hello':'world'}
@app.get('/favicon.ico')
async def favicon():
file_name = "favicon.ico"
file_path = os.path.join(app.root_path, "static")
return FileResponse(path=file_path, headers={"Content-Disposition": "attachment; filename=" + file_name})
@app.get('/abc')
def abc_test():
return{'hello':'abc'}
因此,您可以使用FastAPI默认ASGI服务器运行第一个应用程序。
(env)$: uvicorn main: app-reload-host0.0.0.0-port${PORT}
您需要使用这样的装饰器:@app。获取(“/”)
。看看FastAPI文档。
另外,看看装饰师通常是如何工作的,以便更好地了解幕后的工作方式。
为您提供的一些资源:
python文档
我能找到的许多文章之一
另一个如此的问题
我正在学习Fastapi,我正在localhost启动一个uvicorn服务器。每当出现错误/异常时,我都不会得到回溯。所有我得到的是: 所以,调试很困难,我正在试用python的日志模块 我还尝试过使用调试参数启动uvicorn
我有一个本地运行的服务器。当我在AWS EC2上运行它并在8000端口上从外部发送请求时,我得到以下错误: 如果您能告诉我如何在端口80上执行此操作,那将非常好。
Supported tags and respective Dockerfile links python3.9, latest (Dockerfile) python3.8, (Dockerfile) python3.7, (Dockerfile) python3.6 (Dockerfile) python3.9-slim (Dockerfile) python3.8-slim (Dockerf
你好,我试图学习野蝇和springboose一个非常简单的应用程序使用eclipse。项目名称是springboo-test。包括主方法类在内的所有类都在同一个包中。 主方法类称为'App',其代码如下: 以下是服务器日志: 11:36:57281信息[org.wildfly.extension.undertow](服务器服务线程池--68)WFLYUT0021:注册的web上下文:'/sprin
我一直试图在2.1.0版本中运行Spring引导。我得到404错误,即使试图访问localhost:8080。我已经修改了所有的控制器,服务在同一个主包,但没有运气。任何帮助都很感激。下面是我的控制台日志...甚至localhost:8080也不起作用。 控制器类:
Traceback(最近的最后一次调用):文件"C:/用户/AppData/本地/程序/Python/Python37/client.py",第54行,引号=json.loads(urllib.request.urlopen(QUERY.格式(random.random())). read())文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urllib\re