[Flask] - TIL. step 2

yj-leee·2020년 12월 24일
1

Flask

목록 보기
2/4
post-thumbnail

환경 설정


-DEBUG / Development mode 설정하기

개발 서버를 시작하면 디버거가 표시되고 코드가 변경되면 자동으로 서버가 다시 로드된다.
개발할 때는 이렇게 하는 것이 좋지만, 디버그 출력을 통해 애플리케이션의 내부 특성이 드러날 수 있기 때문에 프로덕션 코드에서는 디버그 문을 제거해야 한다.

FLASK_APP=app.py FLASK_ENV=development FLASK_DEBUG=1 flask run

SQL(Structured Query Language)

SQL은(구조적 질의 언어) 데이터베이스를 제어하고 관리한다.

  • DDL(Data Definition Language) : 데이터 정의어
  • DML(Data Manipulation Language) : 데이터 조작어
  • DCL(Data Control Language) : 데이터 제어어

DML : 데이터 조작어

정의된 데이터베이스에 입력된 레코드를 조회, 수정, 삭제하는 등의 역할을 한다.

  • SELECT : 데이터를 조회하고 추출
  • INSERT, UPDATE, DELETE : 데이터를 직접 변경하기

PyMySQL

Python 전용 데이터베이스 커넥터이다.
MySQL 서버와 통신할 수 있게 만들어주는 라이브러리이다.

  1. 설치하기
    pip install PyMySQL

  2. config.py 생성하기

  1. connection.py 생성하기

connect() 메소드를 통해 DB와 연결해준다.
위에서 정의한 get_connection 메소드는 데이터베이스를 관리하는 persistence layer(model)에서 인자로 받아 사용하게 된다.

참고자료

데이터 베이스 연결

  1. model > user_dao(Database Access Object) 생성하기
  • 데이터 접속을 담당하는 객체이다.
  • dao 객체들을 통해 데이터베이스를 처리한다.

  1. fetchall()
    모든 데이타를 한꺼번에 클라이언트로 가져올 때 사용된다.

  2. execute()
    MySQL 쿼리를 매개 변수로 받아들이고 주어진 쿼리를 실행한다.

Cursor

  1. 연결한 DB와 상호작용 하기위해 curosr 객체를 생성한다.
  2. cursor는 테이블에서 여러개의 행을 쿼리한 후에 행 집합을 한 행씩 처리하는 방식이다.
  3. Dictoionary Cursor는 Row 결과를 pymysql 디폴트인 tuple 형식으로 리턴되지 않고 Dictionary 형태로 리턴한다.
  • python with as 문
    ✔️ 커서의 처리 순서는 커서 선언 -> 커서 열기 -> 커서 사용 -> 커서 닫기이다.
    ✔️ Cursor도 자원이므로 close하는 것은 중요하다.
    ✔️ with as문을 사용해 구문이 끝나면 자동으로 close를 진행해준다.

0개의 댓글