実現したいこと
SQLAlchemyを使ってデータベースの作成を行いたい。
前提
ここに質問の内容を詳しく書いてください。
Flaskを使って簡単なブログアプリケーションを作成しようとしています。
その際にsqlalchemyを使用してdb作成をしようとしているのですが、
Traceback (most recent call last): File "<stdin>", line 1, in <module>
NameError: name 'db' is not defined
上記のようなエラーが発生し、何度やってもうまくいきません。
発生している問題・エラーメッセージ
bash
1### コード1 2```from app import db 3 4### コード2 5```db.create_all() 6 7### エラーメッセージ1 8Traceback (most recent call last): 9 File "<stdin>", line 1, in <module> 10 File "C:\Users\Username\OneDrive\ドキュメント\python_Flask\flask2\app.py", line 12, in <module> class Post(db.Model): 11 File "C:\Users\Username\OneDrive\ドキュメント\python_Flask\flask2\app.py", line 16, in Post created_at = db.Column(db.Datetime, nullable=False, default=datetime.now(pytz.timezone("Asia/Tokyo"))) File "C:\Users\81902\anaconda3\lib\site-packages\flask_sqlalchemy\extension.py", line 1005, in __getattr__ raise AttributeError(name) 12AttributeError: Datetime 13 14### エラーメッセージ2 15Traceback (most recent call last): 16File "<stdin>", line 1, in <module> 17NameError: name 'db' is not defined
python
1ソースコード 2from flask import Flask 3from flask import render_template 4from flask_sqlalchemy import SQLAlchemy 5from datetime import datetime 6import pytz 7 8 9app = Flask(__name__) 10app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////temp/project.db' 11db = SQLAlchemy(app) 12 13class Post(db.Model): 14 id = db.Column(db.Integer, primary_key=True) 15 title = db.Column(db.String(30), nullable=False) 16 body = db.Column(db.String(300), nullable=False) 17 created_at = db.Column(db.Datetime, nullable=False, default=datetime.now(pytz.timezone("Asia/Tokyo"))) 18 19@app.route('/') 20def index(): 21 return render_template('index.html') 22
試したこと
・pip install databases
・最新のsqlalchemyのインストール
・from app import app, db
with app.app_context():
db.create_all()
補足情報(FW/ツールのバージョンなど)
windows 10
Python 3.9.12
flask 2.2.3
flask-sqlalchemy 3.0.3
sqlite 3.38.2
どうぞよろしくお願いします。
参考情報
・【完全版】この動画1本でFlaskの基礎を習得!忙しい人のための速習コース(Flask超入門)
・https://flask-sqlalchemy.palletsprojects.com
・https://msiz07-flask-docs-ja.readthedocs.io
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/10 08:13
2023/03/10 10:53