본문 바로가기

전체 글

(94)
FastAPI를 사용하여 TODO 애플리케이션 만들기 - 04 TODO CRUD FastAPI를 사용하여 서비스를 개발하여 FastAPI와 Python의 기능을 익히고자 합니다. 애플리케이션은 TODO 애플리케이션을 개발하고자 합니다. 이번 내용은 서비스 개발에 중점을 두었습니다. Python과 FastAPI 기능에 대한 내용은 생략하겠습니다. 추가로 Dabtbase는 PostgreSQL을 사용합니다. github: https://github.com/just-record/todo_fastapi 각 단계별로 branch를 생성하여 작업합니다. 네 번째로 TODO CRUD(Create, Read, Update, Delete) 기능입니다. 6. TODO CRUD todo schema 추가 schemas/schema_todo.py(새로생성): TODO 스키마를 추가합니다. from pyda..
FastAPI를 사용하여 TODO 애플리케이션 만들기 - 03 인증: 현재 사용자 FastAPI를 사용하여 서비스를 개발하여 FastAPI와 Python의 기능을 익히고자 합니다. 애플리케이션은 TODO 애플리케이션을 개발하고자 합니다. 이번 내용은 서비스 개발에 중점을 두었습니다. Python과 FastAPI 기능에 대한 내용은 생략하겠습니다. 추가로 Dabtbase는 PostgreSQL을 사용합니다. github: https://github.com/just-record/todo_fastapi 각 단계별로 branch를 생성하여 작업합니다. 세 번째로 JWT 토큰을 이용하여 현재 사용자를 확인하는 기능입니다. 5. 현재 사용자 api/endpoints/auth.py(수정) 전송 된 JWT 토큰을 이용 하여 현재 사용자를 확인하는 endpoint('me')를 추가합니다. endpoin..
FastAPI를 사용하여 TODO 애플리케이션 만들기 - 02 인증: 로그인 FastAPI를 사용하여 서비스를 개발하여 FastAPI와 Python의 기능을 익히고자 합니다. 애플리케이션은 TODO 애플리케이션을 개발하고자 합니다. 이번 내용은 서비스 개발에 중점을 두었습니다. Python과 FastAPI 기능에 대한 내용은 생략하겠습니다. 추가로 Dabtbase는 PostgreSQL을 사용합니다. github: https://github.com/just-record/todo_fastapi 각 단계별로 branch를 생성하여 작업합니다. 두 번째로 로그인 기능입니다. 4. Login 로그인을 위한 endpoint를 추가하고, 로그인 성공 시 JWT 토큰을 생성합니다. db/utils.py(새로생성) get_db 함수를 작성 하여 공용으로 사용할 수 있도록 합니다. from .da..
FastAPI를 사용하여 TODO 애플리케이션 만들기 - 01 DB설정 및 회원 가입 FastAPI를 사용하여 서비스를 개발하여 FastAPI와 Python의 기능을 익히고자 합니다. 애플리케이션은 TODO 애플리케이션을 개발하고자 합니다. 이번 내용은 서비스 개발에 중점을 두었습니다. Python과 FastAPI 기능에 대한 내용은 생략하겠습니다. 추가로 Dabtbase는 PostgreSQL을 사용합니다. github: https://github.com/just-record/todo_fastapi 각 단계별로 branch를 생성하여 작업합니다. 첫 번째로 데이터베이스 설정 및 회원 가입 기능입니다. 1. FastAPI 실행 main.py(새로 생성): FastAPI 애플리케이션을 생성합니다. from fastapi import FastAPI app = FastAPI() @app.get(..
Redis - Python으로 사용하기 FastAPI의 서버에서 세션 정보를 저장하기 위해 방법을 찾다 보니 Redis를 분석하게 되었습니다. 기초적인 단계입니다. Redis란? Redis는 오프 소스 기반의 인 메모리 데이터 구조 저장소입니다. 키-값 구조로 데이터를 저장하며, 다양한 데이터 유형을 지원합니다. 특징: 인-메모리 데이터베이스: 모든 데이터를 메모리에 저장하여 빠른 처리 속도 제공 다양한 데이터 구조 지원: String, List, Hash, Set, Sorted Set 등 다양한 데이터 구조 제공 높은 확장성: 수평적 확장(샤딩)을 통해 데이터 용량 및 처리 능력 확장 가능 다양한 프로그래밍 언어 지원: Python, Java, C++, Go 등 다양한 언어에서 사용 가능 활용 분야: 캐싱: 웹 애플리케이션에서 데이터를 캐싱..
FastAPI - Session 세션(Session) 이란? 웹 애플리케이션에서는 사용자가 웹사이트를 방문할 때마다 새로운 요청을 보냅니다. 하지만 HTTP는 이전 요청과의 연관성을 기억하지 못합니다. 예를 들어 사용자가 장바구니에 상품을 담고 다른 페이지로 이동하면(새로운 요청), 이전에 담은 상품 정보를 기억하지 못합니다. 세션은 사용자별(실제로는 조금 다름)로 공간을 마련하여 이 공간에 사용자의 정보나 상태를 저장합니다. 예를 들어, 로그인 상태나 장바구니 내역 등을 세션에 저장할 수 있습니다. 세션은 서버 측에서 생성되며, 클라이언트(브라우저)에는 세션 ID라는 작은 키 값만 전달됩니다. 브라우저는 이 세션 ID를 쿠키나 URL 매개변수로 저장합니다. 그리고 다음 요청 시 서버에 세션 ID를 함께 보내면, 서버는 이 ID를 통해..
Flask - Python 마이크로 웹 프레임워크 Flask란? Flask는 Python으로 작성된 마이크로 웹 프레임워크로 최소한의 기능만을 제공 하지만 다양한 확장을 지원합니다. 또한 규칙이 엄격하지 않아 개발자가 원하는 구조로 설계 할 수 있습니다. 따라서 간단할 수도 있고 복잡할 수도 있습니다. Flask 설치 pip install Flask Flask 실행 app.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() 실행 - 터미널: python app.py 접속 주소는 http://localhost:5000/ 입니다. Flask 실행 옵션 a..
Python - Jinja2(템플릿 엔진) 템플릿 엔진(Template Engine) 이란? 템플릿 엔진은 정적인 HTML에 동적인 데이터를 결합하여 웹 페이지를 생성합니다. 템플릿 파일에 데이터를 삽입하여 동적인 HTML을 생성합니다. Jinja2 란 Python에서 가장 많이 사용되는 템플릿 엔진입니다. 마이크로 웹 프레임워크인 Flask에서 채택되어 사용되고 있습니다. Jinja2 설치 pip install Jinja2 사용 예시 기본 예시: from jinja2 import Template # 템플릿 template = Template('Hello, {{ name }}!') # 데이터 data = {'name': 'John'} # 렌더링: 템플릿에 데이터를 삽입하여 최종 HTML 생성 result = template.render(data)..