본문 바로가기

카테고리 없음

[DataBase][SQLite][SQLAlchemy] SQL알케미 이용하기-quick start

SQLalchemy을 이용하기 위해서는 플라스크를 먼저 생성하고

다음 sqlalchemy 객체를 패싱하는 것이다.

from flask import Flask

app=Flask(__name__)

1. 데이터베이스만들기

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///데이터파일이름.db'
db = SQLAlchemy(app)

한번 실행하면 객체db는 sqlalchemy 와 sqlalchemy.orm에서 가져온 함수와 도움말등을 포함하게 된다.

그런데 자꾸만 오류가 난다.

FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning.
warnings.warn(FSADeprecationWarning(

왜 이런 오류가 났냐하는 것은 대부분의 앱은 알케미의ㅡ 이벤트시스템을 이용하지 않기 때문에 꺼두는 것이 좋을 것이고 이걸 코드로 별도로 작성해야한다는 답변을 참조하자

https://stackoverflow.com/questions/33738467/how-do-i-know-if-i-can-disable-sqlalchemy-track-modifications

 

How do I know if I can disable SQLALCHEMY_TRACK_MODIFICATIONS?

Every time I run my app that uses Flask-SQLAlchemy I get the following warning that the SQLALCHEMY_TRACK_MODIFICATIONS option will be disabled. /home/david/.virtualenvs/flask-sqlalchemy/lib/python...

stackoverflow.com

해서 아래의 코드를 추가로 작성했다.

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

2.테이블만들기

 

class Mountain(db.Model):
    order = db.Column(db.Integer, primary_key=True)
    mountain = db.Column(db.String(80), unique=True, nullable=False)
    course = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<Mountain %r>' % self.mountain

db.create_all()

값을 입력해보자

mountain1=Mountain(order=1,mountain="우암산",course="어린이공원")
db.session.add(mountain1)
db.session.commit()