0
    cur.execute("CREATE TABLE users(id integer PRIMARY KEY, username TEXT, password TEXT, email TEXT)")
    cur.execute("CREATE TABLE posts(id integer PRIMARY KEY, body TEXT, user_id int, FOREIGN KEY(user_id) REFERENCES users(id))")

プラグマforeign_keys = onをすでに有効にしていましたが、1が返されました。このデータベースをpythonで作成し、データベース表示プログラムを使用してフィールドを確認しました。主キーからテキストフィールドまで、すべてが正しいことを示しましたが、外部キーはありませんでした。user_id を int として表示するだけです。また、挿入時に値が入力されません。ユーザーを挿入すると、行が作成され、投稿の参照になるはずです。しかし、user_id フィールドを照会すると、「none」が返されます。私は何を間違っていますか?

編集:これが私がそれを機能させる方法です

@app.route('/add', methods=['POST'])
def add():       
    c = g.db.execute("INSERT INTO posts(body) VALUES(?)", [request.form['body']])
    b = g.db.execute("INSERT INTO users(username) VALUES(?)", [request.form['name']])
    get = g.db.execute("SELECT id from users where username=?", [request.form['name']])
    id = get.fetchone()  
    userid=str(id[0])
    bet = g.db.execute("SELECT id from posts where body=?", [request.form['body']])
    bid = bet.fetchone()
    postid = str(bid[0])
    e = g.db.execute("UPDATE posts SET user_id = (?) where id = (?)  ", [userid,postid])
    g.db.commit()
    flash('subbmited')
    return redirect(url_for('home'))
4

1 に答える 1