flask_project
├── config.py
└── flask_app
└── ...
flask_app
├── __init__.py
├── models.py
├── services
│ └── api.py
├── static
│ └── style.css
├── templates
│ └── index.html
└── views
└── user_routes.py
#__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() #함수 바깥에 db를 생성해야 다른 파일들에서 import 가능
def create_app():
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite+pysqlite:///test.db'
db.init_app(app)
from flask_app import main_routes #함수 내부에서 import 해주어야 circular import 문제가 발생하지않음.
app.register_blueprint(main_routes.bp)
return app
(... 생략 ...)
Flask-Migrate 은 파이썬에서 변경된 코드로 인해 달라진 데이터베이스 구조, 모델 등을 추적하고 기록해 데이터베이스에 적용
따로 파일을 만들어서 설정가능
#config.py
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://{user}:{pw}@{url}/{db}'.format(
user='',
pw='',
url='',
db=''
)
#__init__.py
#~생략
def create_app():
if app.config["ENV"] == 'production':
#export FLASK_ENV=production 등으로 설정가능
app.config.from_object('config.ProductionConfig')