3
기본 CURD 작업으로 시작하는 학습 플라스 크 웹 프레임 워크를 봤습니다. 하지만 언제 SQLAlchemy를 사용하여 MySQL 데이터베이스에 연결하려고합니다. 하지만 & 설정 내 코드를 다음과 같은 오류가 여기SQLALCHEMY_DATABASE_URI 설정되지 않았습니다.
/usr/local/lib/python3.4/dist-packages/flask_sqlalchemy/__init__.py:819: UserWarning: SQLALCHEMY_DATABASE_URI not set. Defaulting to "sqlite:///:memory:".
'SQLALCHEMY_DATABASE_URI not set. Defaulting to '
/usr/local/lib/python3.4/dist-packages/flask_sqlalchemy/__init__.py:839: 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.
'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
입니다 주어진 여기
# database.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
sqldb = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:[email protected]/myDbName"
# create app
def create_app():
sqlDB = SQLAlchemy(app)
sqlDB.init_app(app)
sqlDB.create_all()
return app
여기
from ..database import create_app
sqldb = create_app()
# Users Model
class Users(sqldb.Model):
__tablename__ = 'users'
id = sqldb.Column(sqldb.Integer, primary_key = True)
db = sqldb.Column(sqldb.String(40))
def __init__(self,email,db):
self.email = email
self.db = db
def __repr__(self,db):
return '<USER %r>' % self.db
이 routes.py입니다 models.py입니다
# Import __init__ file
from __init__ import app
import sys
# JSON
from bson import dumps
# login
@app.route('/', methods = ['GET'])
def login():
try:
# import users model
from Model.models import Users,sqldb
sqldb.init_app(app)
sqldb.create_all()
getUser = Users.query.all()
print(getUser)
return 'dsf'
except Exception as e:
print(e)
return "error."
감사합니다. @B. Barbieri :) 이제 오류가 사라졌지 만 새로운 오류가 발생했습니다. sqlalchemy 확장이 현재 응용 프로그램에 등록되지 않았습니다. 먼저 init_app()를 호출하십시오. –
수입이 꽤 혼란 스럽기 때문에 이것이 어디에서 왔는지는 명확하지 않습니다.이'create_app' 함수를 제거하고'database.py'에서 모든 수입을 만들어야합니다 : 완전하게 구성되기 전에'sqldb'를 사용하려고합니다. –