| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
136 バイト追加 、 2020年2月16日 (日) 04:25
編集の要約なし
==[[Flask]]==
[[Python]] | [[Angular]] |
{{amazon|B00XZTYMG6}}
==インストール==
*http://flask.pocoo.org/docs/0.12/installation/
*[[Windows ]] , python3
> pythoh -m venv flask
> cd flask\Scripts
> activate
(flask)> pip install [[Flask]]===[[Visual Studio Code]]===
[[File:0511_flask_vscode_settings.jpg]]
// 既定の設定とユーザー設定を上書きするには、このファイル内に設定を挿入します
}
===[[Git]]===*Github [[Git]]hub にリポジトリ作成
**https://github.com/pppiroto/flask_sample.git
=====ローカルリポジトリを初期化=====
*http://flask.pocoo.org/docs/0.12/quickstart/
===/hello.py===
from flask import [[Flask]]
app = [[Flask]](__name__)
@app.route('/')
===サーバー起動===
*[[Visual Studio Code、PowershellCode]]、Powershell
(flask) PS C:\workspaces\vscode\flask_sample> set-item env:FLASK_APP hello.py
(flask) PS C:\workspaces\vscode\flask_sample> python -m flask run
* Serving [[Flask ]] app "hello" * Running [[R]]unning on http://127.0.0.1:5000/ (Press CTRLCT[[R]]L+C to quit)
[[File:0506_flask_run_server.jpg]]
====デバッグモード====
PS> set-item env:FLASK_DEBUG 1
===ルーティング===
from flask import [[Flask]]
app = [[Flask]](__name__)
@app.route('/')
|}
===ユニークURL ユニークU[[R]]L / リダイレクトの振る舞い===
*FlaskのURLルールは、[http://werkzeug.pocoo.org/ Werkzeug]のルーティングモジュールに基づく
*このモジュールの背後にあるアイディアは、Apacheなど過去のHTTPサーバーの先例にもとづいた、美しくユニークなURLをを保証すること。このモジュールの背後にあるアイディアは、[[Apache]]など過去のHTTPサーバーの先例にもとづいた、美しくユニークなURLをを保証すること。
@app.route('/projects/')
def projects():
return 'The about page'
*これらは同じように見えるが、末尾の/の扱いが異なる。
*projectsエンドポイントのための正統なURLは末尾にprojectsエンドポイントのための正統なU[[R]]Lは末尾に/を伴う。ファイルシステムのフォルダと同様*末尾の/がない状態で、アクセスした場合、Flaskは末尾にがない状態で、アクセスした場合、[[Flask]]は末尾に/がある正統なURLにリダイレクトする
*末尾の/ない例は、ファイルシステムのファイルと同様、末尾に/を伴ってアクセスされた場合、404 Not Foundエラーとなる
===URL U[[R]]L 生成===*url_for()関数は、関数名を最初の、関数の引数を以降の引数としてとり、URLを生成する関数は、関数名を最初の、関数の引数を以降の引数としてとり、U[[R]]Lを生成する from flask import [[Flask]],url_for
app = [[Flask]](__name__)
@app.route('/')
url_for('show_user_profile',username='piroto',age=46))
[[File:0510_flask_url_for.jpg]]
===[[HTTP ]] メソッド===
*
from flask import request
def method_check():
if request.method == 'GET':
return "[[HTTP ]] METHOD GET" return "[[HTTP ]] METHOD {0}".format(request.method)
===静的ファイル===
=====テンプレート利用=====
from flask import [[Flask]], render_template
@app.route('/render_sample/<param>')
def render_sample(param=None):
=====テンプレート=====
<!doctype html>
<title>Rendering [[R]]endering Sample</title>
{% if param %}
<h1>Parameter : {{ param }}!</h1>
=====テンプレート=====
<!doctype html>
<title>Safe Rendering [[R]]endering Sample</title>
<p>{{ param1 }}</p>
<p>{{ param2 }}</p>
*context locals により、グローバルオブジェクトをどうやってスレッドセーフにし管理している
====Context Locals====
*Flaskのグローバルオブジェクトは実際には特定コンテキストローカルオブジェクトのプロキシ[[Flask]]のグローバルオブジェクトは実際には特定コンテキストローカルオブジェクトのプロキシ==[[Tips]]==
===Session===
*http://flask.pocoo.org/docs/0.12/quickstart/#sessions
from flask import [[Flask]], session app = [[Flask]](__name__, static_folder='app')
app.secret_key = "hoge"
sessio["foo"] = "bar"
===CRSFC[[R]]SF===
*http://flask.pocoo.org/snippets/3/
*[http://typea.info/blg/glob/2018/01/angular-httpclientxsrfmodule-flask-csrf.html Angular + HttpClientXsrfModule + Flask で CSRF]
===[[Cookie]]===
*http://flask.pocoo.org/snippets/30/
*https://stackoverflow.com/questions/37068604/flask-sessions-where-are-the-cookies-stored

案内メニュー