前提
python,raspberrypie,flask,sqlieteを活用したWebシステムを作成しています。
現在cron1分毎に入力してもらった終了時間を現在の時間と比較して数量時間が過ぎていれば今入っているデータを削除(上書き更新)しようとしています。
localhost上では実行できたのですが、Webから切り離すとエラーがでてしまうようになりました。
実現したいこと
・cronで一分毎に時間を確認し、終了時間を現在の時間が過ぎていれば上書き更新をする
発生している問題・エラーメッセージ
PS C:\Users\R4A1\Desktop\kanzen> & C:/Users/R4A1/AppData/Local/Programs/Python/Python310/python.exe "c:/Users/R4A1/Desktop/kanzen/Egamiproject/flask/sqllite/haki copy.py" Traceback (most recent call last): File "c:\Users\R4A1\Desktop\kanzen\Egamiproject\flask\sqllite\haki copy.py", line 10, in <module> g.db = sqlite3.connect('C:\\Users\\R4A1\\Desktop\\kanzen\\Egamiproject\\EGAMIDB.db') File "C:\Users\R4A1\AppData\Local\Programs\Python\Python310\lib\site-packages\werkzeug\local.py", line 316, in __get__ obj = instance._get_current_object() # type: ignore[misc] File "C:\Users\R4A1\AppData\Local\Programs\Python\Python310\lib\site-packages\werkzeug\local.py", line 513, in _get_current_object raise RuntimeError(unbound_message) from None RuntimeError: Working outside of application context. This typically means that you attempted to use functionality that needed the current application. To solve this, set up an application context with app.app_context(). See the documentation for more information.
該当のソースコード
python
1import sqlite3 2from flask import Flask,g 3import datetime 4t_delta = datetime.timedelta(hours=9) 5JST = datetime.timezone(t_delta, 'JST') 6now = datetime.datetime.now(JST) 7 8 9 10g.db = sqlite3.connect('C:\\Users\\R4A1\\Desktop\\kanzen\\Egamiproject\\EGAMIDB.db') 11now = datetime.datetime.now() 12con =g.db 13owarijikan = con.execute("select 終了時間 from bikuteini") 14owarihun = con.execute("select 終了分 from bikuteini") 15data = owarijikan.fetchall() 16data1 = owarihun.fetchall() 17h=data[0][0] 18m=data1[0][0] 19hm=str(h)+':'+str(m) 20print(hm) 21t = now.strftime('%H:%M') 22print(t) 23if (hm<=t): 24 sql = "UPDATE bikuteini SET クラス番号='0',名前='登録なし',開始時間=25,開始分=0,終了時間=25,終了分=0 where ラズパイID = 1" 25 con.execute(sql) 26 con.commit()
試したこと
・ローカルホストにつなげて更新されているのか確認
・エラーの検索
・DB 接続 pythonなどで情報収集
vscodeのターミナルでの手動実行、タスクスケジューラーでの自動実行
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。