python_fastapi 12

[프로젝트]중기부 보도자료 크롤링 & MySql 저장

프로젝트 작업 정리1. Python 환경 설정가상환경 생성 및 활성화python -m venv venvsource venv/bin/activate # For Mac/Linuxvenv\Scripts\activate # For Windows필요한 라이브러리 설치pip install beautifulsoup4 requests fastapi uvicorn sqlalchemy mysql-connector-python jinja22. 데이터베이스 설정MySQL 설치 및 설정Homebrew로 MySQL 설치: brew install mysqlMySQL 서비스 시작: brew services start mysqlMySQL 클라이언트 접속: mysql -u root -p데이터베이스 및 사용자 생성: CREATE..

python_fastapi 2024.05.29

[FastApi]간단한 Todo 리스트 API 구현

간단한 Todo 리스트 API 구현1. 프로젝트 설정필요한 라이브러리 설치pip install fastapi uvicorn프로젝트 파일 구조.├── main.py└── requirements.txt2. FastAPI 서버 코드 작성main.py 파일 내용from fastapi import FastAPI, HTTPExceptionfrom pydantic import BaseModelfrom typing import Listapp = FastAPI()class Todo(BaseModel): id: int title: str description: str = None completed: bool = Falsetodos = []@app.post("/todos/", response_model..

python_fastapi 2024.05.28

강의 10: FastAPI 프로젝트 배포

강의 10: FastAPI 프로젝트 배포강의 목표FastAPI 프로젝트를 배포하는 방법을 이해합니다.기본적인 보안 설정을 적용하여 배포합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제Dockerfile을 생성하여 Docker 이미지를 만듭니다. FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8 COPY ./app /appdocker-compose.yml 파일을 생성하여 Docker Compose 설정을 추가합니다. version: "3.7" services: web: build: . ports: - "80:80"Docker 이미지를 빌드하고 컨테이너를 실행합니다. docker-compose up --build브라우저에서 h..

python_fastapi 2024.05.28

강의 9: 사용자 인증 및 권한 부여

강의 9: 사용자 인증 및 권한 부여강의 목표OAuth2와 JWT를 사용하여 사용자 인증 및 권한 부여 방법을 이해합니다.인증이 필요한 API 엔드포인트를 생성합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제auth.py 파일을 생성하고 OAuth2 및 JWT 설정을 추가합니다. from fastapi import Depends, HTTPException, status from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm from jose import JWTError, jwt from passlib.context import CryptContext from sqlalchemy.orm import Sessi..

python_fastapi 2024.05.28

강의 8: 응답 모델 사용하기

강의 8: 응답 모델 사용하기강의 목표Pydantic 응답 모델을 사용하여 API 응답을 검증하는 방법을 이해합니다.응답 모델을 정의하고 사용하는 API 엔드포인트를 생성합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제schemas.py 파일에 응답 모델을 정의합니다. class UserResponse(BaseModel): id: int name: str age: int email: str class Config: orm_mode = Truemain.py 파일에서 응답 모델을 사용하도록 수정합니다. @app.post("/users/", response_model=schemas.UserResponse) def create_user(user:..

python_fastapi 2024.05.28

강의 7: CRUD 작업 구현

강의 7: CRUD 작업 구현강의 목표CRUD(Create, Read, Update, Delete) 작업을 구현하는 방법을 이해합니다.CRUD 작업을 수행하는 API 엔드포인트를 생성합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제crud.py 파일에 아래의 CRUD 함수를 추가합니다. def get_users(db: Session, skip: int = 0, limit: int = 10): return db.query(models.User).offset(skip).limit(limit).all() def get_user(db: Session, user_id: int): return db.query(models.User).filter(models.User.id == user..

python_fastapi 2024.05.28

강의 5: 요청 본문 다루기

강의 5: 요청 본문 다루기강의 목표Pydantic을 사용하여 요청 본문을 검증하는 방법을 이해합니다.요청 본문을 받아 처리하는 API 엔드포인트를 생성합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제main.py 파일에 아래의 코드를 추가합니다. from pydantic import BaseModel class User(BaseModel): name: str age: int email: str @app.post("/users/") def create_user(user: User): return user서버를 실행하고, POST 요청을 보내기 위해 http://127.0.0.1:8000/docs에 접속하여 인터랙티브 API 문서를 사용합니다.추가 실습더 복잡한..

python_fastapi 2024.05.27

강의 4: 경로 매개변수와 쿼리 매개변수

강의 4: 경로 매개변수와 쿼리 매개변수강의 목표경로 매개변수와 쿼리 매개변수의 사용 방법을 이해합니다.동적 경로와 쿼리 매개변수를 활용한 엔드포인트를 생성합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제1. 경로 매개변수main.py 파일에 아래의 코드를 추가합니다. @app.get("/users/{user_id}") def read_user(user_id: int): return {"user_id": user_id}서버를 실행하고, 브라우저에서 http://127.0.0.1:8000/users/1에 접속하여 결과를 확인합니다.2. 쿼리 매개변수main.py 파일에 아래의 코드를 추가합니다. @app.get("/users/") def read_users(skip: int = 0,..

python_fastapi 2024.05.27

강의 3: HTTP 메서드 다루기

강의 3: HTTP 메서드 다루기강의 목표GET, POST, PUT, DELETE 메서드를 이해하고 활용합니다.다양한 HTTP 메서드를 사용하는 간단한 API 엔드포인트를 생성합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제1. GET 메서드GET 메서드는 서버에서 데이터를 가져올 때 사용됩니다.main.py 파일에 아래의 코드를 추가합니다. @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}서버를 실행하고, 브라우저에서 http://127.0.0.1:8000/items/1?q=fastapi에 접속하여 결과를 확인합니다.2. POST 메서드..

python_fastapi 2024.05.27

강의 2: 기본 라우팅 및 엔드포인트 설정

강의 2: 기본 라우팅 및 엔드포인트 설정강의 목표라우팅의 개념을 이해하고, 기본 엔드포인트를 설정합니다.간단한 라우트를 통해 API 응답을 제공합니다.준비물이전 강의에서 설정한 FastAPI 프로젝트실습 예제1. 라우팅의 개념라우팅은 클라이언트의 요청 URL을 특정 함수에 매핑하여 적절한 응답을 반환하는 과정입니다. FastAPI에서는 @app.get, @app.post 등의 데코레이터를 사용하여 라우트를 설정합니다.2. 기본 엔드포인트 설정main.py 파일을 열고, 새로운 라우트를 추가합니다. from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/..

python_fastapi 2024.05.27