2017-10-22 13 views
0

기본적으로 flask-sqlalchemy를 사용하여 Flask 앱을 ​​만들려고합니다. 우선 데이터베이스 (database.py)에 많은 양의 데이터를로드하려고합니다. 그러나이 작업을 수행하거나 심지어 myapp.db 파일을 만들 수 없습니다.데이터베이스가 작성되지 않았습니다 (flask-sqlalchemy)

오류가 발생하지 않지만 myapp.db 파일이 생성되지 않습니다.

>>> db.engine 
Engine(sqlite://) 

위의 내용은 myapp이어야합니다. 저는 꽤 확신합니다.

문제를보다 간결하게 만들기 위해 코드를 단순화했습니다. 여기

나는 내 응용 프로그램이 있습니다

from flask import Flask 
import os 
from flask_sqlalchemy import SQLAlchemy 

app = Flask(__name__) 

db_path = os.path.join(os.path.dirname(__file__), 'myapp.db') 
db_uri = 'sqlite:///{}'.format(db_path) 
SQLALCHEMY_DATABASE_URI = db_uri 
db = SQLAlchemy(app) 

from views import * 


if __name__ == '__main__': 
    app.secret_key = os.urandom(12) 
    app.run(debug=True) 

을 그리고 내 모든 데이터를로드 할 수 내 database.py를 실행하려면 - 내 마음에 myapp.db 파일 ?? 작성해야합니다

을 여기

from flask_sqlalchemy import SQLAlchemy 
import os 
import re 

from myapp import app 
from models import * 

## Creates our database 
db.create_all() 

username = test 
password = test 
user = User(username=username, password=password) 

db.session.add(user) 
db.session.commit() 
은 변경 내 models.py

from flask_sqlalchemy import SQLAlchemy 
from myapp import app 
# create a new SQLAlchemy object 
db = SQLAlchemy(app) 

class User(db.Model): 

    """""" 
    __tablename__ = "users" 

    id = db.Column(db.Integer, primary_key=True) 
    username = db.Column(db.String, nullable=False) 
    password = db.Column(db.String, nullable=False) 

답변

0

입니다

,
SQLALCHEMY_DATABASE_URI = db_uri 

app.config['SQLALCHEMY_DATABASE_URI'] = db_uri 

그것을 고정.

+1

당신이하고있는 것처럼 여러개의'db' 객체를 생성해서는 안된다는 것에주의하십시오. app에 정의 된'db.Model'은 예를 들어 모델 등의 선언 클래스를 포함하지 않을 것입니다. –