現在sqlalchemyを用いてテーブル作成を行おうとしています。
以下のサイトを写経して勉強を行っていたのですが、エラーメッセージで詰まってしまいました。
app.pyにモデルの基底クラスを記述し、テーブル作成を行おうとしたのですが、sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file (Background on this error at: http://sqlalche.me/e/e3q8)
というエラーが出力されうまく出来ませんでした。
エラーメッセージのurlを調べてみるとDBAPIエラーだと記載されており、理解が出来ませんでした。
どうすればテーブル作成ができるのかを教えて下さい。
よろしくおねがいします。
環境
ubuntu 18.10
Flask 1.0.2
Python 3.7.2
app.py
1rom flask import Flask, render_template, redirect, request 2from todo import ToDoList 3from flask_sqlalchemy import SQLAlchemy 4 5app = Flask(__name__) 6app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///db/sample.db" 7db = SQLAlchemy(app) 8 9todolist = ToDoList() 10 11class ToDoItem(db.Model): 12 __tablename__ = "todoitems" 13 item_id=db.Column(db.Integer, primary_key=True) 14 title=db.Column(db.String(100), nullable=False) 15 done=db.Column(db.Boolean,nullable=False,default=False) 16 17@app.route("/") 18def show_todolist(): 19 return render_template("showtodo.html", todolist=todolist.get_all()) 20 21@app.route("/additem", methods=["POST"]) 22def add_item(): 23 title=request.form["title"] 24 if not title: 25 return redirect("/") 26 27 todolist.add(title) 28 return redirect("/") 29 30@app.route("/deleteitem/<int:item_id>") 31def delete_todoitem(item_id): 32 todolist.delete(item_id) 33 return redirect("/") 34 35@app.route("/updatedone/<int:item_id>") 36def update_todoitemdone(item_id): 37 todolist.update(item_id) 38 return redirect("/") 39 40@app.route("/deletealldoneitems") 41def delete_alldoneitems(): 42 todolist.delete_doneitem() 43 return redirect("/") 44 45if __name__ == "__main__": 46 app.run(port=8000, debug=True) 47
参考サイト
https://www.atmarkit.co.jp/ait/articles/1808/07/news029.html
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/23 01:28