前提・実現したいこと
flaskを使用して、SQLiteで登録してある「users」テーブルから
取り出したパラメータをページ上に表示したい。
「DB Browser for SQLite」で登録したテーブルや列が、
実際に反映されるようにしたい。
発生している問題・エラーメッセージ
「users」テーブルが存在しないと表示されてしまいます。
"C:\Users\パソコン名\Documents\フォルダ名\workspace\flask\app.py", line 12, in index c.execute(sql) sqlite3.OperationalError: no such table: users
※パソコン名とフォルダ名は隠しております
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>Document</title> 9</head> 10 11<body> 12 <p>名前:{{user_info[0]}}</p> 13 <p>年齢:{{user_info[1]}}</p> 14 <p>住所:{{user_info[2]}}</p> 15</body> 16 17</html>
python
1import sqlite3 2from flask import Flask, render_template 3 4app = Flask(__name__) 5@app.route("/") 6def index(): 7 # flasktest.dbに接続します 8 conn = sqlite3.connect("flasktest.db") 9 c = conn.cursor() 10 sql = "SELECT name, age, address FROM users WHERE id = 1;" 11 # sql文を実行 12 c.execute(sql) 13 # 取ってきた内容を変数に格納する 14 user_info = c.fetchone() 15 # データベースの接続終了 16 c.close() 17 return render_template("index.html", user_info=user_info) 18 19 20if __name__ == '__main__': 21 app.run(debug=True)
ファイル構造
flask/ ├ templates │ └ index.html ├ app.py └ flasktest.db
試したこと
テーブルの作成および列の追加は「DB Browser for SQLite」を使用し、
「Write Changes」を使用して変更の保存をかけておりますが、
エラーメッセージによると、python(app.py)の12行目にて、
usersテーブルが存在しないとエラーが出ているので、
パソコン本体と「DB Browser for SQLite」の再起動を行い、
DBにテーブルと列が存在していることを確認しております。
また、何度かDBも作成し直しております。
補足情報(FW/ツールのバージョンなど)
OS:Windows 10 home(1909)
DB Browser for SQLite:3.11.2
Flask:1.1.1
回答1件
あなたの回答
tips
プレビュー