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)
あなたがやっているように、複数の別々の 'db'オブジェクトを作成すべきではないことに注意してください。 appに定義された 'db.Model'は、例えばモデルの宣言クラスなどを含みません。 –