반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
[Flask] Flask-SQLAlchemy 본문
반응형
객체에 데이터 모델을 정의하고, 이를 DB와 매핑해 주는 것을 ORM(Object Relaition Model)이라고 한다
더 쉽게 말하자면 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다
객체 지향 프로그래밍: 클래스 사용
관계형 데이터베이스: 테이블 사용
객체 모델과 관계형 모델 간에 불일치가 존재하는데, ORM으로 해결할 수 있다
ORM이 있기 때문에 코드가 특정 DB에 종속되지 않고 기본 객체 만으로 데이터를 기술할 수 있다
파이썬에서 ORM으로 많이 쓰이는 것 중에 SQLAlchemy가 있고, 그걸 플라스크에서 플러그인처럼 쓸 수 있게 만든 것이 Flask-SQLAlchemy이다
pip install flask_sqlalchemy
Flask-SQLAlchemy를 사용하기 위해 설치한다
import os #디렉토리 절대 경로
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
dbdir = os.path.abspath(os.path.dirname(__file__)) #현재 파일이 있는 디렉토리 절대 경로
dbfile = os.path.join(dbdir, 'db.sqlite') #데이터베이스 파일을 만든다
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True #사용자 요청이 끝나면 커밋=DB반영 한다
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False #추가 메모리를 사용하므로 꺼둔다
db = SQLAlchemy(app)
class User(db.Model): #데이터 모델을 나타내는 객체 선언
__tablename__ = 'user_table' #테이블 이름
id = db.Column(db.Integer, primary_key=True) #칼럼 생성
name = db.Column(db.String(32), unique=True, nullable=False)
def __repr__(self): #데이터 모델 객체도 파이썬 객체처럼 메소드 사용 가능
return f"<User('{self.id}', '{self.username}', '{self.email}')>"
db.create_all()
@app.route('/')
def hello():
return 'Hello World!'
실행하면 db.sqlite이름으로 데이터베이스 역할을 하는 파일이 생성된다
참고
반응형
'언어 > 파이썬' 카테고리의 다른 글
[파이썬 Flask] 회원가입 웹 시스템 만들기_2 WTF 적용하기 (1) | 2020.09.04 |
---|---|
[파이썬 Flask] 회원가입 웹 시스템 만들기 (0) | 2020.09.03 |
[파이썬] beautifulsoup로 2020년 네이버 실시간 검색어 크롤링 하기 (0) | 2020.09.01 |
파이썬-selenium으로 웹 매크로 만들기 (0) | 2020.06.07 |
파이썬 beautifulsoup로 웹툰 크롤링, 다운로드 하기 (2) | 2020.05.30 |
Comments