본문 바로가기

flask10

728x90
Jinja2 템플릿 언어 동작원리 이해와 간단한 웹 화면 구성 우선 Jinja2에 대해 간단하게 설명하겠습니다. 1. Jinja2는 무엇인가요? Jinja2는 Python에서 사용되는 템플릿 엔진 중 하나입니다. 템플릿 엔진은 정적인 부분과 동적인 데이터를 결합하여 동적인 결과물을 생성하는 도구입니다. 2. 어떤 역할을 하는 건가요? Jinja2의 주된 역할은 HTML과 같은 문서를 만들 때, 문서의 일부를 동적으로 변환하는 데 있습니다. 정적인 부분은 그대로 두고, 특정 부분을 변경하거나 반복되는 패턴을 생성할 수 있도록 도와줍니다. 3. 어떻게 동작하나요? Jinja2는 템플릿 안에 삽입된 특별한 문법을 해석하여 동적인 부분을 채워넣습니다. 중괄호({{ }}) 안에 변수를 넣으면 해당 변수의 값으로 치환되고, 중괄호와 퍼센트({% %}) 사이에는 제어 구조(반복.. 2023. 12. 19.
Python FastAPI 및 Swagger 활용한 API 설계 및 문서화 API를 생성하고 관리하는 데 도움이 되는 몇 가지 오픈 소스 도구가 있습니다. 먼저, Swagger 또는 OpenAPI Specification은 API 설계를 위한 표준으로 사용되며, 이를 통해 자동으로 API 문서를 생성할 수 있습니다. Swagger/OpenAPI: API 설계 및 문서화를 위한 표준 스펙으로, 여러 언어 및 플랫폼에서 지원됩니다. 또한, API 요청 및 응답 스펙을 자동으로 생성하는 도구로는 다음이 있습니다. Postman: API 개발 및 테스트 도구로, 요청 및 응답을 기반으로 스키마를 생성하여 문서화할 수 있습니다. Insomnia: API 테스트 및 디자인을 위한 도구로, 자동으로 스키마를 생성하고 관리할 수 있습니다. 이러한 도구들을 조합하여 효과적으로 API를 만들고 .. 2023. 12. 14.
OAuth 2.0 액세스 토큰을 Nginx 또는 Nginx Plus로 검증 Nginx를 사용하여 웹 사이트에 Google OTP(One-Time Password) 인증을 추가하는 것은 웹 액세스 보안을 강화하는 효과적인 방법 중 하나입니다. Google OTP 인증을 구현하려면 먼저 Python 및 PIP를 설치해야 합니다. Python 및 필수 라이브러리 설치 서버에 Python을 설치하고, 필요한 라이브러리를 설치하세요. sudo apt-get update sudo apt-get install python3 python3-pip pip3 install flask pyotp Flask 애플리케이션 작성 Google OTP 인증을 처리할 간단한 Flask 애플리케이션을 작성합니다. from flask import Flask, render_template, request, red.. 2023. 10. 19.
Nginx, Gunicorn(WSGI), Django 동작 원리 WSGI(Web Server Gateway Interface)와 관련하여, 웹 애플리케이션 서버의 동작 방식과 역할에 대한 설명을 요약 및 정리해보겠습니다. WSGI의 등장 배경 초기에는 웹 서버만 있었으며, 정적인 파일만 처리 가능했음. 동적인 요청에 대한 처리 필요성 증가. CGI(Common Gateway Interface) 등장: 파이썬 어플리케이션 서버의 동작 방식 정의. CGI는 요청마다 파이썬 스크립트를 처음부터 실행하여 처리하는 방식이어서 성능 이슈 발생. WSGI의 등장과 WSGI 서버(Gunicorn, uWSGI) WSGI(Web Server Gateway Interface) 등장: 웹 서버와 파이썬 어플리케이션 간의 통신 규약. WSGI 서버 필요: 클라이언트의 요청을 받아 WSGI .. 2023. 8. 23.
Flask를 사용하여 REST API를 구축하는 예제 코드 Flask를 사용하여 REST API를 구축하는 예제 코드입니다. from flask import Flask, jsonify, request app = Flask(__name__) # 예시 데이터 tasks = [ { 'id': 1, 'title': 'Task 1', 'description': 'This is task 1', 'done': False }, { 'id': 2, 'title': 'Task 2', 'description': 'This is task 2', 'done': False } ] # 모든 작업 목록 반환 @app.route('/tasks', methods=['GET']) def get_tasks(): return jsonify({'tasks': tasks}) # 특정 작업 반환 @app.. 2023. 7. 1.
728x90
728x90