No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Creación de routers

9/17
Recursos

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Para un reemplazo rápido en VScode solo seleccionen un app y presionen Ctrl+D todas las veces necesarias para que se seleccionen todos los textos “app”, el resto es borrar y pegar el texto deseado y el cambio se aplicara en todos.

Este es mi router para login_users

from fastapi import APIRouter
from pydantic import BaseModel
from fastapi.responses import HTMLResponse, JSONResponse
from jwt_manager import create_token

login_router = APIRouter()

class User(BaseModel):
    email: str
    password: str

@login_router.get("/", tags=['home'])
def massege():
    return HTMLResponse('<h1>Hello World!</h1>')


@login_router.post("/login", tags=['auth'])
def login(user: User):
    if user.email == "[email protected]" and user.password == "admin":
        token: str = create_token(user.dict())
        return JSONResponse(status_code=200, content=token)
  

Finalmente el main queda asi basnte limpio

from fastapi import FastAPI

from config.database import engine, Base
from middlewares.error_handler import ErrorHandler

from routers.movie import movie_router
from routers.login_users import login_router
from routers.home_tag import home_router

app = FastAPI()
app.title = "Mi aplicación con FastAPI"
app.version = "0.0.4"

app.add_middleware(ErrorHandler)
app.include_router(movie_router)
app.include_router(login_router)
app.include_router(home_router)

Base.metadata.create_all(bind=engine)

Mi aporte para home_tag.py

from fastapi import APIRouter
from fastapi.responses import HTMLResponse

home_router = APIRouter()

@home_router.get('/', tags=['home'])
def message():
    return HTMLResponse('<h1>Hello World</h1>')

Mi aporte para login_users.py

from fastapi import APIRouter

from fastapi.responses import JSONResponse

from pydantic import BaseModel

from jwt_manager import create_token


login_router = APIRouter()

class User(BaseModel):
    email: str
    password: str


@login_router.post('/login', tags=['auth'])
def login(user: User):
    if user.email == "[email protected]" and user.password == "admin123":
        token: str = create_token(user.model_dump())
        return JSONResponse(status_code=200, content=token)

Aquí mi código:

from fastapi import APIRouter, HTTPException
from models.users import User
from jwt_manager import create_token


users_router = APIRouter()

# Function to do user login.
@users_router.post('/login', tags=['auth'], status_code=200)
def login(user: User):
    if user.email == '[email protected]' and user.password == 'password':
        token: str = create_token(user.model_dump())        # Create a token.
        return {'token': token}
    raise HTTPException(status_code=401, detail='Invalid email or password')