example_run_app

 1from gevent import monkey
 2monkey.patch_all()
 3
 4from hanabiapp import create_app, socketio
 5import atexit
 6import csv
 7from hanabiapp import db
 8from hanabiapp.models import user, game_info, pre_survey, participant, game_survey
 9
10
11def run_app():
12    """
13    Hanabiアプリケーションを作成し,必要な初期データをデータベースに追加する関数.
14
15    アプリのコンテキストを作成し,データベースに `example_id_pass.csv` に記載された
16    ユーザー情報を登録する.既に登録済みのユーザーが存在する場合は,追加を行わない.
17
18    Returns:
19        Flask: 初期化された Flask アプリケーションオブジェクト
20    """
21    app = create_app()
22    with app.app_context():
23        existing_user = user.User.query.filter_by(username='user').first()
24        if not existing_user:
25            # ファイルを開いて読み込み
26            with open("example_id_pass.csv", mode='r', encoding='utf-8') as file:
27                reader = csv.reader(file)
28                for row in reader:
29                    test_user = user.User(username=row[0])
30                    test_user.set_password(row[1])
31                    db.session.add(test_user)
32            db.session.commit()
33    return app
34
35if __name__ == '__main__':
36    """
37    Hanabiアプリケーションを起動するスクリプト.
38
39    `run_app()` を実行し,Flask-SocketIOを使用して
40    `0.0.0.0:5000` でアプリケーションを実行する.
41    """
42    socketio.run(run_app(), host='0.0.0.0', port = '5000')
def run_app():
12def run_app():
13    """
14    Hanabiアプリケーションを作成し,必要な初期データをデータベースに追加する関数.
15
16    アプリのコンテキストを作成し,データベースに `example_id_pass.csv` に記載された
17    ユーザー情報を登録する.既に登録済みのユーザーが存在する場合は,追加を行わない.
18
19    Returns:
20        Flask: 初期化された Flask アプリケーションオブジェクト
21    """
22    app = create_app()
23    with app.app_context():
24        existing_user = user.User.query.filter_by(username='user').first()
25        if not existing_user:
26            # ファイルを開いて読み込み
27            with open("example_id_pass.csv", mode='r', encoding='utf-8') as file:
28                reader = csv.reader(file)
29                for row in reader:
30                    test_user = user.User(username=row[0])
31                    test_user.set_password(row[1])
32                    db.session.add(test_user)
33            db.session.commit()
34    return app

Hanabiアプリケーションを作成し,必要な初期データをデータベースに追加する関数.

アプリのコンテキストを作成し,データベースに example_id_pass.csv に記載された ユーザー情報を登録する.既に登録済みのユーザーが存在する場合は,追加を行わない.

Returns:

Flask: 初期化された Flask アプリケーションオブジェクト