WebSocketとは
WebSocketは、ウェブアプリケーションがサーバーとブラウザ間でリアルタイムの双方向通信を行うための技術標準。 このプロトコルは、単一の長期間開かれた接続を通じて、データの片道または双方向の即時送受信を可能にする。 オーバーヘッドが大幅に削減され、データの即時性が向上。 この特性は、チャットアプリケーションやオンラインゲームなど、リアルタイム性が求められるアプリケーションにとって理想的。
HTTP: クライアントからサーバーへのリクエスト/レスポンスモデル。クライアントがリクエストを送信し、サーバーがそれに対してレスポンスを返す形式です。各リクエスト後、接続は閉じられる。 WebSocket: クライアントとサーバー間で「ハンドシェイク」と呼ばれる一度の接続確立プロセスを行った後、その接続は開いたまま保持され、両方向のデータ送受信が可能になる。
HTTP: 通常、リクエストごとに新しい接続が開かれ、レスポンスが送信された後に閉じられる。 WebSocket: 最初のハンドシェイク後、接続は明示的に閉じられるまで開いたまま。
カブコムAPIの自動売買プログラム構成
すばるさんから勉強。 備忘録。

カブコムAPIの数珠繋ぎの考え方
すばるさんのブログから備忘録 大変べんきょうになります。


FlaskのBlueprint
Blueprintの基本コンセプト
blueprintがアプリケーション(Flaskインスタンス)に登録された場合に
実行する操作(operation)を記録しておくことです。
Flaskは、リクエストを振り分ける(dispatching)ときや、
あるエンドポイントから別のエンドポイントへのURLを生成するときに、
view関数をblueprintと関連付けます
Blueprintサンプル
from flask import Blueprint, render_template, abort from jinja2 import TemplateNotFound simple_page = Blueprint('simple_page', __name__, template_folder='templates') @simple_page.route('/', defaults={'page': 'index'}) @simple_page.route('/<page>') def show(page): try: return render_template(f'pages/{page}.html') except TemplateNotFound: abort(404)
Blueprintの登録
from flask import Flask from yourapplication.simple_page import simple_page app = Flask(__name__) app.register_blueprint(simple_page)
Flaskの設定
Flaskの設定
Flaskのconfigurationで設定する内容は、
デバッグモードの切り替え、secret keyの設定、
その他の環境固有なものです。
設定の基本
app = Flask(__name__) app.config['TESTING'] = True
下記の書き方も同じ意味です。
app.testing = True
組み込みの設定値
- DEBUG
デバッグモードを有効にする。
コードが変更されたときは、再読み込みされるようになる。 - TESTING
テストモードを有効にする。
例外が発生したとき、appのエラーハンドラで処理させる代わりに、
影響を伝搬させるようにする。 - SECRET_KEY
セッションのクッキーを安全に署名するために使用され、
さらに自分のアプリケーションやFlask拡張が必要とする、
その他のあらゆるセキュリティに関する用途で使用されるsecret key。
pythonファイルからの読み取り
app = Flask(__name__) app.config.from_object('yourapplication.default_settings') app.config.from_envvar('YOURAPPLICATION_SETTINGS')
Flaskの基本
Flask
pythonでwebアプリをつくるためにFlaskを調査しました。
仮想環境の構築
最初に作成したいフォルダに仮想環境を構築します。
$ python -m venv venv
起動方法
$ venv\Scripts\activat
終了方法
$ deactivate
Flaskのインストール
$ pip install Flask
その他のライブラリインストール
エラーが発生したので追加しました。
$ pip install arrow $ pip install ipython $ pip install ipywidgets $ pip install psutil $ pip install pyarrow
Hello World アプリケーション
ファイル名はhello.py。flask.pyはエラーになるので使用禁止。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
- 最初にFlaskクラスをimport。このクラスのインスタンスはWSGI(Web Server Gateway Interface)アプリケーションです。
- 次に、Flaskクラスのインスタンスを作成します。最初の引数はアプリケーションのモジュールまたはパッケージの名前で、nameがショートカットとして機能します。これはテンプレート、静的ファイルなどのリソースを探す場所をFlaskが知るために必要になります。
- それからroute()デコレータを使って、どのURLが関数のトリガーかをFlaskに伝えます。
- その関数はユーザのブラウザで表示したいメッセージを返します。標準のコンテント・タイプはHTMLです。
Flaskの起動
公式docsにはflaskコマンドが記載してありますが、環境変数の設定が不明だったのでpythonコマンドで起動。hello.pyを起動します。
$ python -m flask --app hello run
デバッグモードだと、サーバー起動しながら編集できます。
ブラウザの更新ボタンで反映されます。
$ python -m flask --app hello --debug run
ブラウザ表示
http://127.0.0.1:5000/でブラウザ表示されます。
サーバー停止はcrtl+cです。
