기본 콘텐츠로 건너뛰기

Flask 04. FLask-SQLAlcemy

Flask 04. FLask-SQLAlcemy

MVC에서 flask는 controller에 필요한 것을 해준다. 라우팅을 하면서 어떤 로직을 수행할 것인지를 결정한다.

SQLAlcemy는 Model부분을 도와주는 라이브러리이다. orm(object relational mapper)로서 파이썬 안에서 객체로 클래스나 함수로 사용할 수 있다.

import os from flask import Flask from flask_sqlalchemy import SQLAlchemy basedir = os.path.abspath(os.path.dirname(__file__)) dbfile = os.path.join(basedir, 'db.sqlite') app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + dbfile app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) class Test(db.Model): __tablename__ = 'test_table' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(32), unique=True) db.create_all() @app.route('/') def hello(): return 'Hello World!'

# sqlite라는 데이터베이스를 사용하는데 따로 설치없이 하나의 파일을 지정해서 그것을 데이터베이스로 사용한다.

# 프로젝트 폴더를 절대경로로 사용하기 위해 os라이브러리를 가져오고 절대경로를 설정한다.

톺아보기

import os from flask import Flask from flask_sqlalchemy import SQLAlchemy

os 모듈은 파이썬을 이용해 파일을 복사하거나 디렉터리를 생성하고 특정 디렉터리 내의 파일 목록을 구하고자 할 때 사용한다. 데이터베이스 경로를 설정하기 위해서 가져온다.

basedir = os.path.abspath(os.path.dirname(__file__)) dbfile = os.path.join(basedir, 'db.sqlite')

현재 파일의 디렉토리의 절대경로가 나온다.

현재 디렉토리에 데이터베이스 파일을 만들었다.

app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + dbfile app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

teardown일 때 커밋을 한다.

teardown은 사용자가 요청하고 사용자한테 원하는 정보를 전달하면 이 순간이 teardown이다. 즉, 사용자 요청의 끝을 의미한다.

commit을 해야 쌓아져있던 동작을 실제 데이터베이스에 반영한다.

db = SQLAlchemy(app)

이제 db변수를 통해서 데이터를 넣기도 하고 모델을 만들기도 한다.

# db안에 있는 db.model 클래스를 지정해서 클래스를 만들게 되면 Test는 하나의 모델이 된다. class Test(db.Model): # Test는 하나의 모델이 되었다. 현재 Test의 스키마는 클래스의 속성으로 설정한다. __tablename__ = 'test_table' # 데이터베이스에 들어갈 때 테이블 명을 지정. id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(32), unique=True) # 이 클래스를 통해서 데이터베이스에 접근하면 된다. 그 내부적인 것은 알 필요가 없다. db.create_all() # 데이터베이스 생성 함수

이런 식으로 데이터베이스 역할을 하는 파일이 생성된다.

from http://ohdowon064.tistory.com/110 by ccl(A) rewrite - 2020-03-11 01:07:04

댓글

이 블로그의 인기 게시물

Flask 13. pythonanywhere에 배포하기

Flask 13. pythonanywhere에 배포하기 Login: PythonAnywhere It's always a pleasure to hear from you! Ask us a question, or tell us what you love or hate about PythonAnywhere. We'll get back to you over email ASAP. Sorry, there was an error connecting to the server. Please try again in a few moments... www.pythonanywhere.com from http://ohdowon064.tistory.com/124 by ccl(A) rewrite - 2020-03-11 15:54:10

Flask.py #1 설치해보자

Flask.py #1 설치해보자 Flask는 python의 프레임워크라고 할 수 있습니다. Flask를 설치해보자! # 리눅스 -- 접기 이러면 끝 - # pip install flask $ sudo -s 리눅스 같은 경우는 이미 파이썬이 설치가 되어 있을겁니다. # 리눅스 -- 접기 # 맥 -- 접기 이러면 끝 - $ sudo pip install flask 설치가 끝낫으면 Terminal.app 을 열어줍시다. 로 접속하여 파이썬을 설치해 줍니다. [ https://www.python.org/ ] # 맥 -- 접기 # 윈도우 -- 접기 [ https://www.python.org/ ] 로 접속하여 파이썬을 설치해 줍니다. 설치가 끝났으면 [ 고급설정 ] - [ 환경변수 ] - [ 시스템 변수 ] 에서 Path를 찾아줍니다. Path를 찾으셧다면 편집을 누르고 파이썬의 설치 경로와 파이썬 폴더 내의 Script 폴더를 입력해 줍시다. 환경변수까지 끝나셧다면 cmd 창을 키시고 pip install flask 이러면 flask 설치가 끝나게 됩니당 from http://chocoweb.tistory.com/14 by ccl(A) rewrite - 2020-03-07 13:54:54