고급 웹프로그래밍(34)
-
FastAPI(planner 코드리뷰 src.database.connection)
코드 리뷰from motor.motor_asyncio import AsyncIOMotorClientfrom beanie import init_beanie, Documentfrom src.models.events import Event,Eventupdatefrom src.models.users import Userfrom src.config import settingsasync def initialize_database(): # 데이터베이스 초기화 try: client = AsyncIMotorClient(settings.DATABASE_URL) # 데이터베이스를 비동기적으로 사용 await init_beanie( database= client.get_default..
2025.05.02 -
FastAPI(planner 코드리뷰 src.config)
코드 리뷰from pydantic import ConfigDictfrom pydantic_settings import BaSettingsclass Settings(BaseSettings): # .env 파일에서 값을 불러올 수 있게 상속 DATABASE_URL: str # 이 설정 값을 문자열로 입력하겠다 선언 class Config: # 세부 설정 env_file= ".env" # .env 파일을 환경변수 소스로 지정 settings =Settings() # .env 파일을 읽어 DATABASE_URL에 값을 할당용어 설명baseSettings: Pydantic 기반 설정 관리 시스템에서 사용하는 기본 클래스FastAPI 같은 Python 앱에서 환경변수, .env 파일, 기본값..
2025.05.02 -
FastAPI(planner 코드 리뷰 models.users)
코드리뷰from pydantic import BaseModel, Emailstrfrom beanie import Documentfrom .events import Eventclass User(Document): email: Emailstr password: str events: list[Event] | None =None class Settings: # Beanie에서 이 모델이 어떤 MongoDB 컬렉션에 저장될지 설정하는 클래스 name = "users"class UserSignIn(BaseModel): email: Emailstr password: str용어 설명Emailstr: 이메일 유효성 검사(이메일이 올바른 형식인지 검사)
2025.05.02 -
FastAPI(planner 코드 리뷰 models.events)
코드리뷰from pydantic import BaseModel, ConfigDictfrom beanie import Documentclass Event(Document): id: int title: str description: str tags: lst[str] location: str created_at: str model_config = ConfigDict( json_schema_extra={ # Swegger에 보여줄 예시 데이터를 지정 "example": { "id": 1, "title": "아..", "image": "path/to", ..
2025.05.02 -
FastAPI(planner 코드리뷰 src.routes.users)
코드리뷰from fastapi import APIRouter, HTTPException, statusfrom src.models.users import User, UserSignInfrom src.database.connection import Databaseuser_router=APIRouter( prefix= "/users", tags = ["Users"])user_db = Database(User) # User(Beamie의 Document를 상속한 MongoDB 모델 클래스)를 인자로 받는다, 전역에서 DB 객체 생성@user_router.post("/signup")async def sign_new_user(user: User): """회원가입""" # 이런식으로 작성하면 함수..
2025.05.02 -
FastAPI(planner 코드리뷰 src.routes.events)
코드 리뷰from fastapi import APIRouter # 라우팅을 모듈화 하기 위해 사용하는 클래스from src.models.events import Event, EventUpdatefrom src.database.connection import Databaseevent_router = APIRouter( prefix ="/events", tags=["Events"] )event_db = Database(Event) # 다른 모듈에서 정의한 함수와 인자 (models.events.py, database.connection.py)@event_router.get("/", response_model=list[EVENT]) # 이 API(메뉴판)를 서버가(응답) 리스트의 형태로 데이..
2025.05.02