繁体   English   中英

无法使用 postman 在 fastapi 中访问我的路由器

[英]Can't access my router in fastapi with postman

如果我尝试使用邮递员(发送至http://127.0.0.1:8000/users/signup)访问我的路由器(/users/signup ),它会保留响应“detail”:“Not Found”并且 fastapi 显示 api | 信息:172.19.0.1:43736 - “GET /users/signup HTTP/1.1”404 未找到

最初我尝试使用 post 而不是 get 但它无论如何都不起作用

这是应用程序文件夹中的 main.py 和路由器文件夹中的 user.py 中的代码

主要文件:

import os
import sys
from .database import init_db
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
baseurl = os.path.dirname(os.path.abspath(__file__))
from fastapi import FastAPI, APIRouter
from .routers.user import router as user_router
from .routers.article import router as article_router
from fastapi.middleware.cors import CORSMiddleware


router = APIRouter()
router.include_router(user_router, prefix="/users",tags=["users"])
router.include_router(article_router, prefix="/articles",tags=["articles"])
app = FastAPI()
origins = ["http://localhost:3000"]
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.on_event("startup")
async def on_startup():
    await init_db()
@app.get("/")
async def root():
    return {"message ": " Welcome Fastapi"}

@app.get("/hello/{name}")
async def say_hello(name: str):
    return {"message": f"Hello {name}"}

用户.py

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session

import app.repository.user as dao
from app.admin.utils import currentTime
from app.database import get_db
from app.schemas.user import UserDTO
from app.admin.utils import currentTime

router = APIRouter()


@router.get("/signup")
async def signup(user: UserDTO, db: Session = Depends(get_db)):
    print(f" 회원가입에 진입한 시간: {currentTime()} ")
    print(f"SignUp Inform : {user}")
    result = dao.signup(user, db)
    if result == "":
        result = "failure"
    return {"data": result}


@router.post("/login")
async def login(user: UserDTO, db: Session = Depends(get_db)):
    return_user = dao.login(user, db)
    print(f"로그인 정보 : {return_user}")
    return {"data": return_user}


@router.put("/modify/{id}")
async def update(id: str, item: UserDTO, db: Session = Depends(get_db)):
    dao.update(id, item, db)
    return {"data": "success"}


@router.delete("/delete/{id}", tags=['age'])
async def delete(id: str, item: UserDTO, db: Session = Depends(get_db)):
    dao.delete(id, item, db)
    return {"data": "success"}


@router.get("/page/{page}")
async def get_users(page: int, db: Session = Depends(get_db)):
    ls = dao.find_users(page, db)
    return {"data": ls}


@router.get("/email/{id}")
async def get_user(id: str, db: Session = Depends(get_db)):
    dao.find_user(id, db)
    return {"data": "success"}


@router.get("/point/{search}/{page}")
async def get_users_by_point(search: int, page: int, db: Session = Depends(get_db)):
    dao.find_users_by_point(search, page, db)
    return {"data": "success"}

我期待的是发送 {"user_email": "hong@naver.com", "id": "hong1234", "username": "홍길동", "password": "hong1234", "cpassword": "hong1234" } 通过使用 postman 并接收数据:成功并将数据注册到数据库

我尝试了 post 方法和 get 方法并更改路由器地址,但它仍然没有用

您还需要在您的应用中包含路由器:

router = APIRouter()
router.include_router(user_router, prefix="/users",tags=["users"])
router.include_router(article_router, prefix="/articles",tags=["articles"])
app = FastAPI()
app.include_router(router) # Add this.

或者删除主路由器:

# Remove router = APIRouter()
app = FastAPI()
app.include_router(user_router, prefix="/users",tags=["users"])
app.include_router(article_router, prefix="/articles",tags=["articles"])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM