Çöó½ºÅ©¿¡¼ DB¸¦ »ç¿ëÇϱâ À§ÇØ SQLAlchemy¸¦ ¾Ë¾Æº»´Ù. ¿©±â¼´Â Å×À̺íÀ» »ý¼ºÇÑ´Ù. SQLAlchemy´Â ORM(Object-relational mapping)À¸·Î µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÑ´Ù. ±×·¡¼, SQL Äõ¸®¾øÀÌ °´Ã¼¸¦ ÅëÇØ µ¥ÀÌÅͺ£À̽º¸¦ Á¶ÀÛ ÇÒ ¼ö ÀÖ´Ù. model.py ÆÄÀÏ from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key = True, autoincrement=True) userid = db.Column(db.String(32)) username = db.Column(db.String(32)) created_date = db.Column(db.DateTime(), nullable=True) SQLAlchemy °´Ã¼¸¦ »ý¼º ÇÑ´Ù. db.ModelÀ» ¹«Á¶°Ç ¸Å°³º¯¼ö(ÆĶó¸ÞÅÍ)·Î ÇÑ´Ù. db°ªÀ» º¯¼ö¿¡ ´ëÀÔÇÑ´Ù. Å×À̺í À̸§À» º°µµ·Î ÁöÁ¤ ÇÏÁö ¾ÊÀ¸¸é Ŭ·¡½º À̸§ÀÌ Å×À̺í À̸§ÀÌ µÈ´Ù. "__table_name__"À¸·Î ¸í½ÃÀûÀ¸·Î ÁöÁ¤ ÇÒ¼öµµ ÀÖ´Ù. ¿ÞÂÊÀÇ º¯¼ö ¸íÀÌ DB¿¡¼ Çʵå À̸§ÀÌ µÈ´Ù. main.py ÆÄÀÏ from flask import Flask
import model def create_app(): app = Flask(__name__) return app def set_database(app): app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS']= False # True´Â ¸Þ¸ð¸®¸¦ ¸¹ÀÌ »ç¿ëÇϱ⠶§¹®¿¡ False·Î ÇÔ db = model.db db.init_app(app) db.app = app db.create_all() #DB ¾øÀ¸¸é »ý¼º if __name__ == '__main__': app = create_app() set_database(app) app.run(host='0.0.0.0', port=8888, debug=True) DB¸¦ ¸ÅÇÎÇÑ model.py ÆÄÀÏÀ» ÀÓÆ÷Æ® ÇÑ´Ù. import model set_database ÇÔ¼ö¿¡¼ DB¸¦ ¼³Á¤ÇÑ´Ù. µ¥À̺£À̽º ÆÄÀÏ À̸§À» URI Çü½ÄÀ¸·Î ÁöÁ¤ÇÑ´Ù. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' SQLALCHEMY_TRACK_MODIFICATIONS´Â Ãß°¡ÀûÀ¸·Î ¸¹Àº ¸Þ¸ð¸®¸¦ ÇÊ¿ä·Î Çϱ⠶§¹®¿¡ ²¨µÐ´Ù. app.config['SQLALCHEMY_TRACK_MODIFICATIONS']= False SQLAlchemy °´Ã¼¸¦ ÃʱâÈ ÇÑ´Ù, SQLAlchemy °´Ã¼¸¦ Çöó½ºÅ©¿¡ µî·Ï ÇÑ´Ù. db.init_app(app) model.py¿¡¼ db = SQLAlchemy(app)¸¦ ¾ÈÇ߱⠶§¹®¿¡, ¿©±â¼ app¸¦ ÂüÁ¶ ÇÑ´Ù. db.app = app Å×À̺íÀÌ ¾øÀ¸¸é Å×ÀÌºí ½ºÅ°¸¶¸¦ »ý¼ºÇÑ´Ù. db.create_all() Å×À̺íÀÌ Àß »ý¼º µÇ¾ú´ÂÁö È®ÀÎ ÇÒ·Á¸é "db browser for sqlite" ÇÁ·Î±×·¥À» ´Ù¿î·Îµå ¹Þ¾Æ¼ È®ÀÎÇÑ´Ù. "db browser for sqlite" ´Ù¿î·Îµå: https://sqlitebrowser.org/dl/ Âü°í) https://dubaiyu.tistory.com/179 |