Flask+SQLAlchemyでDBへデーターをimporしているのですが、データー投入用のinit_user.pyを実行すると以下のエラーが
出てしまします。python自体を再インストールし、コードも全て書き直して実行しても解決に至りません。
どこが、どのように間違っているのかご教示いただければと思います。
Traceback (most recent call last): File "C:\work\dev\FLASK\FLASK_DB\init_user.py", line 1, in <module> from app import db, User File "C:\work\dev\FLASK\FLASK_DB\app.py", line 19, in <module> db = SQLAlchemy(app) File "C:\Users\test\anaconda3\envs\flask_env\lib\site-packages\flask_sqlalchemy\__init__.py", line 758, in __init__ _include_sqlalchemy(self, query_class) File "C:\Users\test\anaconda3\envs\flask_env\lib\site-packages\flask_sqlalchemy\__init__.py", line 112, in _include_sqlalchemy for key in module.__all__: AttributeError: module 'sqlalchemy' has no attribute '__all__'. Did you mean: '__file__'?
python
1# app.py 2 3import os 4from flask import Flask 5from flask_sqlalchemy import SQLAlchemy 6 7app = Flask(__name__) 8 9app.config['SECRET_KEY'] ='test' 10 11# 現在のディレクトリ取得 12basedir = os.path.abspath(os.path.dirname(__file__)) 13 14# 環境変数設定 app.pyと同じdirにDBが作成される。 15app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite') 16 17# DBの変更履歴を必要とする 18app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False 19 20# dbの作成 21db = SQLAlchemy(app) 22 23 24# 89 テーブル定義 25class User(db.Model): 26 __tablename__ = 'users' 27 28 id = db.Column(db.Integer, primary_key = True) 29 email = db.Column(db.String(64), unique=True, index=True) 30 username = db.Column(db.String(64), unique=True, index=True) 31 password_hash = db.Column(db.String(128)) 32 33 # classのインスタンス化 34 def __init__(self, email, username, password_hash): 35 self.email = email 36 self.username = username 37 self.password_hash = password_hash 38 39 # 特殊メソッド 画面出力を行う 値が設定されているか確認するため 40 def __repr__(self): 41 return f"Username: {self.username}" 42 43if __name__ == '__main__': 44 app.run(debug=True) 45
python
1# init_user.py 2from app import db, User 3 4db.create_all() 5 6user1 = User("test_user1@test.com", "Test User1", "111") 7user2 = User("test_user2@test.com", "Test User2", "111") 8db.session.add_all([user1, user2]) 9 10db.session.commit() 11 12print(user1.id)
<参考>
(flask_env) C:\work\dev\FLASK\FLASK_DB>pip list
Package Version
alembic 1.9.2
certifi 2022.12.7
click 8.1.3
colorama 0.4.6
dnspython 2.3.0
email-validator 1.1.3
Flask 2.0.3
Flask-Login 0.5.0
Flask-Migrate 3.1.0
Flask-SQLAlchemy 2.5.1
Flask-WTF 0.15.1
greenlet 2.0.2
idna 3.4
itsdangerous 2.1.2
Jinja2 3.0.3
Mako 1.2.4
MarkupSafe 2.1.2
Pillow 9.0.1
pip 22.3.1
pytz 2021.3
setuptools 65.6.3
SQLAlchemy 2.0.1
typing_extensions 4.4.0
Werkzeug 2.0.3
wheel 0.37.1
wincertstore 0.2
WTForms 2.3.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2023/02/04 22:53
2023/02/04 23:17
退会済みユーザー
2023/02/04 23:39 編集
2023/02/05 00:02 編集
2023/02/05 00:06