标签: fastapi

Insert a nested schema into a database with fastAPI?

I have recently come to know about fastAPI and worked my way through the tutorial and other docs. Although fastAPI is pretty well documented, I couldn't find information about how to process a nested input when working with a database.

For testing, I wrote a very small family API with two models:

class Member(Base):
    __tablename__ = 'members'

    id = Column(Integer, primary_key=True, server_default=text("nextval('members_id_seq'::regclass)"))
    name = Column(String(128), nullable=False)
    age = Column(Integer, nullable=True)
    family_id = Column(Integer, ForeignKey('families.id', deferrable=True, initially='DEFERRED'), nullable=False, index=True)

    family = …
Run Code Online (Sandbox Code Playgroud)

python-3.x pydantic fastapi

2
推荐指数
1
解决办法
1432
查看次数

在 Fastapi 中找不到 pydantic BaseModel

我在 Kubuntu 18.04 上安装了 3.6.9。我已经安装了使用pip3 install fastapi。我正在尝试通过其官方文档测试驱动该框架,并且我在其指南的关系数据库部分

schemas.py

from typing import List

from pydantic import BaseModel

class VerseBase(BaseModel):
    AyahText: str
    NormalText: str

class Verse(VerseBase):
    id: int

    class Config:
        orm_mode = True
Run Code Online (Sandbox Code Playgroud)

VS代码突出一个错误from pydantic import BaseModel,它会告诉:No name 'BaseModel' in module 'pydantic'。此外,当我尝试运行时,出现uvicorn main:app reload 以下错误:

File "./main.py", line 6, in <module>
   from . import crud, models, schemas
ImportError: attempted relative import with no known parent package
Run Code Online (Sandbox Code Playgroud)

我试图renstallpydantic …

python python-3.x pydantic fastapi

2
推荐指数
4
解决办法
3277
查看次数

如何在fastAPI中返回图像

在使用 Opencv 比较两个图像后,我试图在 fastAPI 中返回一个图像。

这是我到目前为止所做的:

from fastapi import FastAPI , File, UploadFile
import numpy as np
from cv2 import *
import os
import base64


app = FastAPI(debug = True)


@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...),file1: UploadFile = File(...)):
    content = await file.read()
    nparr = np.fromstring(content, np.uint8)
    img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)

    content1 = await file1.read()
    nparr1 = np.fromstring(content1, np.uint8)
    img1 = cv2.imdecode(nparr1, cv2.IMREAD_COLOR)

    akaze = cv2.AKAZE_create()
    kpts1, desc1 = akaze.detectAndCompute(img, None)
    kpts2, desc2 = akaze.detectAndCompute(img1, None)
    matcher = cv2.DescriptorMatcher_create(cv2.DescriptorMatcher_BRUTEFORCE_HAMMING) …
Run Code Online (Sandbox Code Playgroud)

python api opencv opencv3.1 fastapi

2
推荐指数
1
解决办法
4833
查看次数

Python Fastapi 与现有数据库?

我正在学习在 postgresql 中使用 fastapi。我有一个来自其他项目的巨大数据库,它已经作为 postgre 数据库完成了……所以我尝试添加 fastapi 但不知道我该怎么做……看来您必须使用 fastapi 正确创建所有数据库模式从一开始......我找不到任何有用的例子,所以我希望你能指导我。谢谢你的时间,请原谅我的英语

python postgresql fastapi restapi

2
推荐指数
1
解决办法
828
查看次数

在 ubuntu 服务器上使用 uvicorn 运行 fastapi 应用程序

我正在处理在 FastAPI 上对远程 ubuntu 服务器进行的项目沉积。我将尝试通过命令从终端(使用 SSH 连接)运行项目

gunicorn -k uvicorn.workers.UvicornWorker main:app
Run Code Online (Sandbox Code Playgroud)

输出是

gunicorn -k uvicorn.workers.UvicornWorker main:app
[2020-07-14 15:24:28 +0000] [23102] [INFO] Starting gunicorn 20.0.4
[2020-07-14 15:24:28 +0000] [23102] [INFO] Listening at: http://127.0.0.1:8000 (23102)
[2020-07-14 15:24:28 +0000] [23102] [INFO] Using worker: uvicorn.workers.UvicornWorker
[2020-07-14 15:24:28 +0000] [23104] [INFO] Booting worker with pid: 23104
[2020-07-14 15:24:28 +0000] [23104] [INFO] Started server process [23104]
[2020-07-14 15:24:28 +0000] [23104] [INFO] Waiting for application startup.
[2020-07-14 15:24:28 +0000] [23104] [INFO] Application startup complete.
Run Code Online (Sandbox Code Playgroud)

但我需要该项目在服务器的 IP 地址上可用。如果我尝试像 …

gunicorn fastapi uvicorn

2
推荐指数
1
解决办法
4893
查看次数

Alembic 自动生成空迁移文件

我正在尝试将alembic库连接到数据库sqlalchemy库。作为指南,我使用此示例 链接

我的项目文件:

数据库文件

from databases import Database
from sqlalchemy import MetaData, create_engine

DATABASE_URL = "postgresql://....@localhost:5432/db"

engine = create_engine(DATABASE_URL)
metadata = MetaData()

database = Database(DATABASE_URL)
Run Code Online (Sandbox Code Playgroud)

模型.py

from sqlalchemy import Table, Column, Integer, String, DateTime
from sqlalchemy.sql import func

from db import metadata

notes = Table(
    "notes",
    metadata,
    Column("id", Integer, primary_key=True),
    Column("title", String(50)),
    Column("description", String(50)),
    Column("created_date", DateTime, default=func.now(), nullable=False),
)
Run Code Online (Sandbox Code Playgroud)

env.pyalembic设置)

from db import DATABASE_URL, metadata

....
#add new
target_metadata = metadata …
Run Code Online (Sandbox Code Playgroud)

sqlalchemy alembic starlette fastapi

2
推荐指数
1
解决办法
1464
查看次数

在 Fastapi 应用程序上使用 loguru-log 请求参数进行 Python 日志记录

我有一个 fastapi 应用程序,我想记录在它上面发出的每个请求。我正在尝试为此使用 loguru 和 uvicorn,但我不知道如何打印与每个请求关联的标头和请求参数(如果有)。

我想要这样的东西:

INFO 2020-08-13 13:36:33.494 uvicorn.protocols.http.h11_impl:send - 127.0.0.1:52660 - "GET 
/url1/url2/ HTTP/1.1" 400 params={"some": value, "some1":value}
Run Code Online (Sandbox Code Playgroud)

有办法吗?谢谢你的帮助。

这里有一些链接:

loguru uvicorn fastapi

python logging fastapi uvicorn

2
推荐指数
1
解决办法
4322
查看次数

FASTAPI:无法呈现 html 页面

我正在尝试呈现显示来自网络摄像头的视频捕获的 html 页面。但面临错误:- 500 Server Error TypeError: TemplateResponse() missing 1 required positional argument: 'context'。我在 Flask 中尝试过的相同代码,在那里工作正常。

from fastapi import FastAPI
import uvicorn
from fastapi import Depends, FastAPI
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
import cv2

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

@app.get("/")
async def index():
    return templates.TemplateResponse("index.html")


async def gen_frames(camera_id):
    cap=  cv2.VideoCapture(0)

    while True:
        # for cap in caps:
        # # Capture frame-by-frame
        success, frame = cap.read()  # read the camera frame …
Run Code Online (Sandbox Code Playgroud)

python fastapi

2
推荐指数
1
解决办法
1505
查看次数

如何在 Swagger UI 中对 FastAPI 端点进行分组?

我开始使用 fastApi 框架进行编程,它带有一个内置的 swagger 接口来处理请求和响应。我已经完成了近20个api,在swagger界面上很难管理和识别api。有人告诉我在swagger界面中添加部分以区分api,但我在google上找不到任何示例,我需要你们的帮助。

提前致谢...

python swagger-ui swagger-2.0 fastapi

2
推荐指数
1
解决办法
815
查看次数

FastAPI 的自定义身份验证

如何为 fastapi 创建自定义身份验证?

示例:我想使用标头 {'password': 'best password'} 发出请求,并且如果标头中的密码密钥是“最佳密码”,则允许在所有视图中不更改内容的情况下查看“仅认证”内容(并与通用文档)。

python fastapi

2
推荐指数
1
解决办法
3710
查看次数