SQLAlchemy を使用して Flask で SQL データベースをセットアップしようとしています。この github ページの例に従ってコードをモデリングしていますが、うまく動作しないようです。
次のエラーが発生し続けます。
sqlalchemy.exc.OperationalError: (OperationalError) no such table: user u'INSERT INTO user (username, email) VALUES (?, ?)' ('test', 'test@gmail.com')
これが私のコードです:
from flask import Flask, render_template, request, url_for, request, redirect
from flask.ext.sqlalchemy import SQLAlchemy
import sqlite3
import os
app = Flask(__name__)
sqlite3.connect(os.path.abspath("test.db"))
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///test.db"
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return "<User %r>" % self.username
x = User("test", "test@gmail.com")
db.session.add(x)
db.session.commit()
@app.route("/")
def index():
return User.query.all()
if __name__ == "__main__":
init.db()
app.run(debug=True)
エラーが各セッションに関係していることは知っていますが、与えられた例ではセッションが明示的に初期化されていないため、少し混乱しています。