前提・実現したいこと
ここに質問の内容を詳しく書いてください。
SQLAlchemyを使ってデータベースにテーブルを追加しようとしています。
発生している問題・エラーメッセージ
書いたプログラムにおけるエラーについて
name '__tablename__' is not defined
というエラーが出たのですが、どうすれば良いのでしょうか。
bash
1$ FLASK_APP=app.py flask run 2 * Serving Flask app "app.py" 3 * Environment: production 4 WARNING: This is a development server. Do not use it in a production deployment. 5 Use a production WSGI server instead. 6 * Debug mode: off 7--略-- 8 File "/Users/username/Desktop/app.py", line 9, in <module> 9 class Person(db.Model): 10 File "/Users/username/Desktop/app.py", line 10, in Person 11 __tablename__ == 'persons' 12NameError: name '__tablename__' is not defined
該当のソースコード
python
1from flask import Flask 2from flask_sqlalchemy import SQLAlchemy 3 4app = Flask(__name__) 5app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username@localhost:5432/testdb' 6db = SQLAlchemy(app) 7 8class Person(db.Model): 9 __tablename__ = 'persons' 10 id = db.Column(db.Integer, primary_key=True) 11 name = db,Column(db.String(), nullable=False) 12 13db.create_all() #create table if it doesn't exist 14 15@app.route('/') 16def index(): 17 return 'Hello World!' 18 19
試したこと
またPostgreSQLで確認し、
すでにpersonsテーブルが存在するといったようなことはありませんでした。
sql
1$ psql testdb 2psql (11.5) 3Type "help" for help. 4 5testdb=# \dt 6 List of relations 7 Schema | Name | Type | Owner 8--------+--------+-------+------- 9 public | table1 | table | username 10 public | table2 | table | username 11(2 rows) 12
補足情報(FW/ツールのバージョンなど)
Python 3.6.0
psql 11.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。