인공지능 개발자 수다(유튜브 바로가기) 자세히보기
반응형

Fastapi 32

[FastAPI] SQLAlchemy 상세 - Update(6-3)

update는 조건에 따라 값을 변경해주는 것이기 때문에, 복잡한 개념이 필요가 없어서 편하다. 여기서도 마찬가지로, SQL 방식과 ORM 방식으로 나눠서 공부해보자 1. SQL 방식1.1. 기본 사용 방법update() 함수를 사용where() 함수로 필터링values() 함수에 변경할 값을 입력from sqlalchemy import updatestmt = ( update(User) .where(User.id == 1) .values(name="New Name", email="new_email@example.com"))await db.execute(stmt)await db.commit() Json 데이터 이용 하기stmt = ( update(User) .where(User...

Fastapi 2025.01.01

[FastAPI] SQLAlchemy 상세 - Read/Select (6-2)

select 방식에서는 굳이 복잡하게 SQL 방식을 사용할 필요는 없다.대신, 이번 페이지에서는 select의 다양한 기능에 대해 알아보자1. 기본 사용 방법기본적인 실행 순서는 아래와 같다.쿼리 생성: select() 함수 이용조건 추가 : .where() 를 사용해 필터 조건 추가쿼리 실행 : db.execute() 로 쿼리를 실행결과 처리아래는 result = db.execute() 코드 실행 이후에 결과처리를 위한 메서드 이다.메서드반환값설명.fetchall()행의 리스트(list of Row objects)결과의 모든 행을 반환,메모리 효율성이 중요하거나 단순 데이터 추출에 적합.fetchone()첫 번째 행(Row object)결과의 첫 번째 행(row)만 반환.scalar()첫 번째 컬럼 값..

Fastapi 2025.01.01

[FastAPI] SQLAlchemy 상세 - Create/Insert (6-1)

현재 글에서는 SQLAlchemy 2.0 기준으로 글을 작성하겠다. CRUD는 크게 두가지 방법이 있다.ORM 방식객체 중심적으로 작업해야 하는 경우데이터베이스와 python 객체의 상태 동기화가 필요한 경우SQL 방식대량의 데이터를 처리하거나 성능이 중요한 경우ORM이 필요 없는 아주 간단한 작업두가지 방법을 비교하며 작성하겠다. 이번 시간에는 Insert 에 대해 공부해 보자. 1. ORM 방식1.1. ORM 기본 방법사용 함수: db.add()단점: 대량 데이터 삽입에는 비효율적일 수 있음(대량 작업에서는 SQL 방식 추천).from sqlalchemy.ext.asyncio import AsyncSessionfrom models import User # ORM 모델from database impo..

Fastapi 2024.12.31

[FastAPI] Sqlalchemy와 CRUD (6)

1. SQLAlchemy1.1.SQLAlchemy란?SQLAlchemy는 Python의 ORM(객체 관계 매핑) 라이브러리로, 데이터베이스와 Python 객체 간의 변환을 쉽게 할 수 있게 도와줍니다. ORM(객체 관계 매핑, Object-Relational Mapping)은 프로그래밍 언어의 객체지향적 패러다임과 관계형 데이터베이스의 테이블 간의 데이터를 변환하는 기술입니다. 쉽게 말해, ORM은 데이터베이스의 테이블과 프로그래밍 언어에서 사용하는 객체를 매핑하여 데이터베이스 작업을 코드 내에서 객체를 다루는 것처럼 편리하게 수행할 수 있도록 해줍니다. 1.2. 데이터베이스별 비교이번 글에서는 Postgresql을 기준으로 글을 작성하겠습니다. SQLAlchemy를 사용할 때, 사용하는 데이터베이스가 ..

Fastapi 2024.12.31

[FastAPI] FastAPI에서 Redis 사용하기

1. Redis 개념1.1. Redis란 무엇인가?Redis는 고성능의 오픈 소스 인메모리 데이터베이스로, 키-값 데이터 구조를 지원.데이터가 메모리에 저장되어 매우 빠른 읽기/쓰기 속도를 제공단순한 문자열뿐만 아니라 다음과 같은 데이터 구조를 지원Lists: 순서가 있는 값의 컬렉션 (예: 대기열, 스택)Sets: 중복 없는 값의 집합Sorted Sets: 우선순위를 가진 값의 집합Hashes: 필드와 값을 가진 객체Streams: 로그 데이터와 실시간 메시지 스트림Bitmaps 및 HyperLogLogs: 특수한 데이터 처리 용도특정 키에 TTL(Time To Live)을 설정해 자동으로 데이터를 만료시킬 수 있다.1.2. 언제 사용하는가?캐싱 (예: 데이터베이스 질의 결과 캐싱)세션 저장소 (예: ..

Fastapi 2024.11.20

[FastAPI] Uvicorn 과 Gunicorn 사용하기

1. 설명1.1. GunicornWSGI(Web Server Gateway Interface) 서버 HTTP 요청(클라이언트의 요청)을 애플리케이션(FastAPI)에 전달하고, 애플리케이션의 응답을 클라이언트로 다시 전송하는 역할을 합니다.동기 프레임워크를 실행할 때 주로 사용. 비동기 I/O를 지원하지 않기 때문에, FastAPI와 같은 ASGI 프레임워크를 직접 실행할 수는 없다FastAPI와 같이 비동기 지원이 필요한 경우 Uvicorn을 Gunicorn의 워커로 사용하는 방식으로 함께 사용하여, 다중 프로세스의 이점을 살리면서 비동기 처리 성능을 향상시킵니다.1.2. UvicornASGI(Asynchronous Server Gateway Interface) 서버비동기 프레임워크에 최적화FastAP..

Fastapi 2024.11.14

[FastAPI] Pydantic 사용법 (5)

1. Pydantic1.1. Pydantic 이란?Pydantic은 파이썬 데이터 클래스와 유사한 구조로 데이터 모델을 정의하고, 이를 통해 데이터 검증과 변환을 수행하는 라이브러리입니다. 특히, 데이터의 유효성을 보장하고 자동으로 타입을 변환해주는 기능을 제공함으로써, 신뢰성 있는 애플리케이션 개발에 도움을 줍니다. Pydantic 사용의 장점• 코드의 간결성: 데이터 검증, 변환 로직을 수동으로 작성할 필요 없이, Pydantic 모델을 정의함으로써 자동으로 처리할 수 있어 코드가 간결해집니다. • 안정성: FastAPI와 같은 웹 프레임워크에서는 외부에서 들어오는 데이터가 많기 때문에, 신뢰할 수 있는 데이터 검증이 필수적입니다. Pydantic은 이러한 역할을 수행함으로써 애플리케이션의 안정성을 ..

Fastapi 2024.08.31

[FastAPI] 비동기(Asynchronous)프로그래밍 (4)

1. 비동기(Asynchronous)프로그래밍의 개념비동기 작업은 작업이 시작된 후 완료되기를 기다리지 않고, 그 사이에 다른 작업을 수행할 수 있는 프로그래밍 방식입니다. 이는 동기식 작업과는 달리 여러 작업을 병렬로 처리할 수 있게 해줍니다.비동기 작업은 보통 async 및 await 키워드를 사용하여 정의됩니다.async: 비동기 함수(코루틴) 정의한다.await: 비동기 함수 내에서 시간이 오래 걸리는 작업을 수행할 때 사용한다.File input/output 작업 (대용량 파일을 읽거나 쓰는 작업)데이터베이스 쿼리웹 서버: 많은 수의 클라이언트 요청을 동시에 처리해야 하는 경우2. 예시 코드2.1. 비동기 함수(코루틴 정의)1. def 앞에 async를 붙여준다.2. 시간이 오래 걸리는 작업에 ..

Fastapi 2024.08.24

[FastAPI] HTML 사용해 보기 (3)

1. 개요먼저 FastAPI에서 HTML을 사용한다는 것은,HTML에서 보여주는 내용을 동적으로 보여준다는 것이다.즉, FastAPI에서 Return한 변수를HTML에서 보여주겠다는 것이다.2. 설치먼저 jinja2를 설치해 주자# pip 설치 방법pip install jinja2# poetry 설치 방법poetry add jinja2  3. 기본적인 HTML 다루는 방법만약 프론트엔드 서버와 FastAPI가 통신한다면, 클라이언(유저)가 프론트엔드에 Request를 날리면 프론트엔드 서버에서 Json 등의 데이터를 FastAPI에 요청하는 형식으로 진행되겠지만, HTML만 이용할 때에는 클라이언트가 FastAPI에게 request를 요청하면 HTML을 반환하는 형식으로 코드를 작성하게 된다.'FastA..

Fastapi 2024.08.22

[FastAPI] get post (2)

1. Get1.1. 개념 설명GET 요청은 주로 서버에서 데이터를 가져오기 위해 사용됩니다.url에 파라미터를 적어 요청합니다.장점간편하다단순한 데이터 조회에 적합RESTful 방식에 적합단점보안 문제 취약데이터 크기 제한데이터 수정 불가캐싱문제: 자주 수정되는 데이터를 조회할 때에는 과거 데이터가 조회될 수 있음1.2. 기본적인 GET 요청FastAPI에서 GET 요청을 처리하려면 @app.get() 데코레이터를 사용합니다.from fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"message": "Hello, World!"}위의 코드에서 '/' 경로에 GET 요청을 보내면 {"message": "Hello, ..

Fastapi 2024.08.17
반응형