【问题标题】:FastAPI NameError: name 'Request' is not definedFastAPI NameError:未定义名称“请求”
【发布时间】:2021-04-02 00:56:09
【问题描述】:

我正在松散地遵循有关构建全栈交易应用程序并尝试使用 FastAPI 和 uvicorn 运行此脚本的教程。我真的找不到我的错误,也不知道我在做什么,所以非常感谢任何帮助。

代码:

import sqlite3, config
from fastapi import FastAPI
from fastapi.templating import Jinja2Templates

app = FastAPI()
templates = Jinja2Templates(directory="templates")

@app.get("/")
def index(request: Request):
    connection = sqlite3.connect(config.DB_FILE)
    connection.row_factory = sqlite3.Row
    cursor = connection.cursor()

    cursor.execute("""
        SELECT id, symbol, name FROM stock order by symbol
    """)

    rows = cursor.fetchall()

    return templates.TemplateResponse("index.html", {"request": request, "stocks": rows})

@app.get("/stock/{symbol}")
def index(request: Request, symbol):
    connection = sqlite3.connect(config.DB_FILE)
    connection.row_factory = sqlite3.Row
    cursor = connection.cursor()

    cursor.execute("""
        SELECT id, symbol, name FROM stock WHERE symbol = ?
    """, (symbol,))

    row = cursor.fetchall()

    return templates.TemplateResponse("stock_detail.html", {"request": request, "stock": row})

错误

line 9, in <module>
    def index(request: Request):
NameError: name 'Request' is not defined

非常感谢您抽出宝贵时间

【问题讨论】:

    标签: python fastapi uvicorn


    【解决方案1】:

    您需要导入 Request 类。

    请将第 2 行更改为:from fastapi import FastAPI, Request

    【讨论】:

      【解决方案2】:

      您需要导入Request。替换了你的第一行:

      from fastapi import FastAPI, Request
      

      【讨论】:

      • 很高兴它得到解决,欢迎来到 Stack Overflow,@throavvay!由于这是您的第一个问题,请考虑投票或接受答案。这有助于遇到相同问题的其他用户轻松找到解决相同问题的解决方案。以下是有关原因的更多信息:stackoverflow.com/help/someone-answers
      猜你喜欢
      • 2017-05-20
      • 2015-01-09
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多