티스토리 뷰
$ sudo apt-get install libmysqlclient-dev
(venv) $ pip install Flask
(venv) $ pip install SQLAlchemy
(venv) $ pip install Flask-SQLAlchemy
(venv) $ pip install mysqlclient
mysqlclient는 mysql과 SQLAlchemy를 연결해주는 역할을 하며 libmysqlclient-dev가 먼저 설치 되어야 설치할 수 있습니다.
SQLAlchemy는 python으로 작성한 코드를 SQL문으로 변환하여 mysql에 전달합니다
Flask-SQLAlchemy는 Flask app에서 SQLAlchemy를 편하게 쓸 수 있도록 해줍니다.
기본적인 코드는 다음과 같습니다.
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://<id>:<password>@localhost:3306/<db name>'
db = SQLAlchemy(app)
class MyTable(db.Model):
id = Column(db.Integer, nullable=False, primary_key=True)
value = Column(db.String(40), nullable=False, default='')
@app.route("/")
def hello():
return "Hello World!"
@app.route('/select')
def select():
row_id = request.args.get('id', type=int)
row = MyTable.query.filter_by(id=row_id).first()
return (row.value, 200) if row else ('', 400)
@app.route('/insert', methods=['POST'])
def insert():
value = request.form.get('value', type=str)
row = MyTable(value=value)
db.session.add(row)
db.session.commit()
return ('ok', 200)
if __name__ == "__main__":
app.run('0.0.0.0', port=4567)
댓글