본문 바로가기

BE18

flask와 mysql 연동 플라스크와 MySQL연동플라스크와 가장 많이 사용되는 DB 연동 시작데이터 베이스 생성: 'db_name'에 해당하는 MySQL 데이터 베이스 생성 필요환경에 맞는 SQLALCHEMY_DATABASE_URL 기반 접속 설정 수정플라스크 버전 확인필요한 패키지Flask-SQLAlchemypymysql플라스크 애플리케이션과 SQLAlchemy 설정MySQL 서버 기본포트번호: 3306'''SQLAlchemy는 모델 클래스에 명시적으로 생성자(__init__)를 정의하지 않아도 됨. 내부적으로 제공하기 때문'''class User(db.Model): # 테이블 이름 지정. SQLAlchemy는 모델 클래스 이름을 소문자화하여 테이블 이름으로 사용 __tablename__ = 'user' id = db.C.. 2025. 2. 8.
flask logging: 로깅 레벨 플라스크 로깅 레벨 및 파일 1. 로그 레벨(log level)중요도에 따라 여러 레벨로 분류됨DEBUG: 개발 중 상세 정보 제공INFO: 일반적인 작업의 성공 보고WARNING: 예상치 못한 일이 발생했지만, 프로그램이 작동하는 데는 문제가 없을 때 사용ERROR: 심각한 문제 발생CRITICAL: 아주 심각한 문제이며 시스템이 잘못 동작할 수 있음 2. 로그 파일로그 메세지들이 쓰이는 파일.로그 분석 도구에 의해 분석되기도 함문제의 경위 추적보안 사고의 감사 트레일(audit trail)제공비정상적인 접근서비스 거부 공격(DoS)시스템 침투 등  3. 파이썬 로깅 시스템의 계층적 구성각 파이썬 프로그램(프로세스)마다 최상위에는 root, 이보다 아래 계층에  child 로거 존재 가능logging... 2025. 2. 8.
flask blueprint(블루프린트) 클래스 객체 생성 및 라우팅 모듈화 플라스크 블루프린트블루프린트란 여러 컴포넌트를 논리적으로 그룹화(모듈화, modularization)하여  대규모 애플리케이션을 구성하는 방식이다. 재사용성(reusability), 가독성(readability) 측면에서 요구된다.  1. 기본 사용법: 블루프린트 클래스-인스턴스 생성''' 블루프린트: 애플리케이션 실행 전, 객체가 모두 구성되어야 하므로 1~2단계는 app = Flask(__name__)전에 위치 '''from flask import Blueprint# 1. 블루프린트 객체 생성# 첫 번째 인자: 블루프린트의 이름# 두 번째 인자: 블루프린트가 정의되는 모듈의 이름. 일반적으로 '__name__'(현재 모듈)사용auth_blueprint = Blueprint('auth', __name_.. 2025. 2. 5.
flask 정적 파일 처리 및 코드 수정 없는 변경 flask 정적 파일 처리1. 디렉토리 구조 및 사용/ㄴapp.pyㄴstatic/      ㄴimage.jpg 플라스크는 /static 경로가 이미 기본설정되어 있음→ send_from_directory()함수 내에서 경로 지정시 static/ 미기재from flask import Flask, send_from_directoryapp = Flask(__name__)@app.route('/image')def get_image(): return send_from_directory(app.static_folder, 'image.jpg') 2. 캐싱(caching)정적 파일은 변하지 않기 때문에 사용자의 브라우저에 임시 저장 (웹 성능 향상)정적 파일 수정 대비를 위해 url_for()의 version인자를 .. 2025. 2. 2.
flask template engine, Jinja2: 매크로(macro), 템플릿 상속 flask template engine, Jinja2: macro(매크로), 템플릿 상속1-1. macro웹페이지에서 반복적으로 사용하는 HTML 요소를 매크로로 정의필요할 때마다 매크로를 호출하여 재사용매크로가 포함된 파일은 일반적으로 macros.html 라고 부름 1-2. 예시(1) directory(2) templates/macros.html{% macro display_message(message) %}{{ message }}{% endmacro %} (3) templates/messages.html {% from "macros.html" import display_message %} {{ display_message('환영합니다') }} {{ display_messag.. 2025. 2. 2.
flask template engine, Jinja2: 변수, if문, 필터 요약 정리 flask template engine, Jinja2: 기본 문법node.js의 ejs처럼 flask에서 사용하는 템플릿 엔진으로는 Jinja2가 있다.ejs와 문법이 비슷해서 사용하기 쉬운 것 같다.  0. directory settingtemplate으로 사용되는 .html 파일들은 templates directory에 있어야 한다. 1. 변수와 제어문 hello, {{ name }}! {% if name %} Hello, --{{name}}-- {% else %} Hello, no name ! {% endif %}   2. 필터변수의 값을 출력하기 전, 변형하는 단계예시사용자가 입력한 문자열을 대문자로 변환날짜 형식 변환사용자 정의 필터 추가📌필터 .. 2025. 1. 29.