본문 바로가기

flask9

Flask-session 으로 서버에서 세션 관리 로그인 시 세션 정보를 넘겨주고 싶었다. 기존 Flask 에 존재하는 session 은 클라이언트 측에 세션을 저장하는 방식이므로 매우 위험하다. from flask import session flask-session 하지만 플라스크 라이브러리 중 flask-session 을 설치하고 app에 설정해주면 해당 session은 서버측에 저장되게 된다. from flask_session import Session server_session = Session(app) 이때 꼭 정해야 하는 app config 두 가지는 SECRET_KEY 와 SESSION_TPYE 이다. app 에 여러 설정 들이 늘어나면서 app.py 가 더러워져서 클래스로 분리시켜 주었다. import os, dotenv dotenv.lo.. 2024. 3. 9.
SQLAlchemy - filter + 조회 예시 SQLAlchemy 를 사용하고 있으나 filter 에 관련된 사용법을 정리할 필요가 있어서 작성한다. ORM(Object Relational Mapping) 라이브러리인 SQLAlchemy 객체 지향 프로그래밍과 관계형 데이터베이스의 데이터를 맵핑하기 위해서 사용된다. 특히 filter 메서드는 ORM을 사용할 때 where 절처럼 쿼리문의 조건문을 작성해줄 때 사용해준다. 모델클래스.query.filter() 형태로 사용되며 filter 메서드까지만 사용해주면 쿼리문의 결과가 나올 것이라는 예상과 달리 쿼리문 자체로 콘솔에 보이게 된다. 비슷한 용법으로 filter_by 도 있지만 사용법이 조금 상이하고 제한적이라 대표적으로 filter만 정리한다. 기본 사용법 Select * from 테이블명 wh.. 2024. 3. 7.
Flask + PostgreSQL + React - 2 https://youtu.be/EAcD5ueqvHQ?si=tJ21_L9IAaKYkDID 저번 강의에서 간단하게나마 백엔드 구성이 끝났다. 플라스크와 SQLAlchemy, pgcopg2 를 활용하여 간단하게 이벤트 테이블의 모델을 만든 다음 CRUD를 구성했다. Frontend 구성하기 요즘 리액트 프로젝트는 vite 를 쓰는게 대세지만 예전 강의 특성상 cra을 쓰고 있다. 일단은 강의에 따라가기 위해 오랜만에 cra를 사용하고, axios 와 date-fns 를 다운 받아준다. date-fns 기존의 날짜/시간 관련 라이브러리는 day.js 만 알고 있었는데 해당 라이브러리를 새로이 알게 되었다. https://www.npmjs.com/package/date-fns date-fns Modern Java.. 2024. 3. 6.
Jinja2 and Werkzeug? Flask 는 두 개의 외부 라이브러리인 Jinja2 템플릿 엔진과 Werkzeug WSGI 툴킷을 사용한다. jinja2 특정 문법을 사용하여 해당 문서들의 필요한 부분을 웹 브라우저가 인식할 수 있는 html 로 변환시켜주는 역할을 수행한다. (즉 Data + Template = HTML) 그밖에도 샌드박스 실행 및 선택적 오토 이스케이프를 추가하므로 보안성도 높이게 됩니다. 플라스크에선 render_template() 함수를 사용하여 진자2의 문법을 사용하여 html을 작성해준 파일을 넘겨주는 형식으로 사용한다. https://jinja.palletsprojects.com/en/3.1.x/ Jinja — Jinja Documentation (3.1.x) jinja.palletsprojects.com.. 2024. 3. 4.