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'は、例えばモデルの宣言クラスなどを含みません。 –

関連する問題