Mizn
@Mizn

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Flaskで表示したHTMLの裏でPythonファイルを並行処理したいのですが…

解決したいこと

Pythonで表情を判定するWebアプリをつくっています。
FlaskのバックグラウンドでPythonの表情を判定するプログラムを動かしたいのですが
下記のようなコードでは動きません。
ローカルホストに接続した際、HTMLを展開するか、バックグラウンドで5秒ごとに動くかの二択の状態です。
どのように変更を加えれば並行実行できますかね?助けてください。

FlaskでHTMLを展開し、そのバックグラウンドで顔認証の処理を実装したいのですができません。誰か助けてください。 コードは下記に…
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ファイル名:server.py

from flask import Flask, render_template
import EmotionJudge as judge

app = Flask(name)

@app.route('/')
def index():
return render_template('storagetime.html')

@app.route('/',methods=["POST"])
def call():
judge

if name=="main":
app.run(debug=True,threaded=True)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ファイル名:EmotionJudge.py

config_firestorage = {
認証情報
}

credentials_vision = 認証情報
client = 認証情報の結びつけ

credentials_firebase = 認証情報
firebase_admin.initialize_app(credentials_firebase)
db = firestore.client()
callback_done = threading.Event()

def on_snapshot(doc_snapshot, changes, read_time):
for doc in doc_snapshot:
docDict = doc.to_dict()
timestamp = docDict['timestamp']
print(f'Received document snapshot: {doc.id},RealTime = {timestamp}')
fire_storage()//画像読み込み
cloud_vision()//表情判定
callback_done.set()

while True:
sleep(5)
doc_ref = db.collection(u'collection').document(u'document')
doc_watch = doc_ref.on_snapshot(on_snapshot)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ファイル構造

├── templates
│ └── storagetime.html
├── server.py
└── EmotionJudge.py

0

1Answer

コードの書き方

```   ~~~python  ```python:server.py
コード   コード      コード
```     ~~~        ```
import EmotionJudge as judge
app.run(debug=True,threaded=True)

@app.route('/')
def index():
  return render_template('storagetime.html')

@app.route('/',methods=["POST"])
def call():
  judge


app = Flask(name)にて
スレッド実行の指示を出しています。

Flaskのバックグラウンドではなく、judge内でon_snapshotをstartでスレッド実行したらどうでしょう!(eventでも良いが)
judge内の末尾でスレッドの終了をjoinして、wsgiへheaderとbodyをreturnしましょう。

バックグラウンドで5秒ごとに動くかの二択の状態
の解釈が間違えていたらごめんなさい。

1Like

Your answer might help someone💌