Web技術全般、結構苦手なのかもしれません・・・
一つづつ調べながらやっていきましょ
今回は、flaskチュートリアルの「HTTPメソッド」から進めていきます。
HTTPメソッドは、サーバーサイドのプログラミングをしていると意識することが多いような気がします。今までにPHPなどでPOSTメソッドでデータを送信したりしたことがありましたが、結構混乱していた覚えがあります^^;
今回も個人的な調べを交えながら進めていきます。
こんな人の役に立つかも
・flaskを勉強している人
・PythonでWebアプリケーションを作りたい人
HTTPメソッド
代表的な「HTTPメソッド」というものにはGETメソッドと、POSTメソッドがありました。(他にもあります)
まずはチュートリアルに出てくる代表的なHTTPメソッドをすご〜く簡単におさらいしたいと思います。
GETメソッドとPOSTメソッド
HTTPメソッドで代表的なものに、GETとPOSTがあります。
GETメソッド
GETは、ブラウザのURL欄にURLを入力してエンターを押すと、Webサーバーに欲しい情報を要求するメソッドです。WebサーバーはブラウザからのGETメソッドに応答してWebページのデータを送信したりします。
もっと抽象的な言葉にすると、
クライアント(ブラウザなど)がサーバーに要求を出すとき
にGETメソッドを利用します。
POSTメソッド
POSTメソッドは、WebブラウザからWebサーバーにデータを送信するときに利用するHTTPメソッドです。フォーム入力した文字列をWebサーバーに送信するときなどはPOSTが使われます。
もっと抽象的な言葉にすると、
クライアントがサーバーにデータを送信するとき
にPOSTメソッドが利用されます。
FlaskのHTTPメソッド
「@app.route()」でルーティングをしたURLは、デフォルトで「GET」メソッドにしか応えないようになっています。他のHTTPメソッドに応答するように「methods」パラメータに指定することができます。
from flask import request
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return do_the_login()
else:
return show_the_login_form()
このプログラムは、loginというURLに対して「GET」でアクセスすると「show_the_login_form()」という関数が実行されて、「POST」でアクセスをすると「do_the_login()」という関数が実行されるようになっています。
※このプログラムは説明用のプログラムなので、このまま実行しても動作しません。
何回かファイルを実行してしまいました・・・
静的ファイル
静的なファイルは、CSSやJavaScriptなどのソースのことです。静的なファイルのURLを取得するには、url_forを使って、次のように、特別な「static」というエンドポイントを利用するとのことです。
url_for('static', filename='style.css')
そして、ここで指定した「style.css」というファイルは「static/style.css」という階層に保存されていなければいけないとのことでした。
意外とルールだらけ。
今回、ちょっとボリュームが少ないのですが、次のレンダリングテンプレートを勉強していて、中途半端となってしまいましたので、ここまでとさせていただきます。
次回は、テンプレートエンジン、という概念が出てきます。まだ理解が浅いので調査してチュートリアルを進めていきたいと思います。