ルートとビュー
HTTPリクエストを処理します
「ルートとビュー」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
Flask とは
Flask は軽量な Python の Web フレームワークです。定型コードをほとんど書かずに、Web アプリや API を構築できます。pip install flask でインストールします。
from flask import Flask
app = Flask(__name__)
print('Flask app created:', app.name)アプリの作成
すべての Flask アプリは、app = Flask(__name__) オブジェクトから始まります。__name__ 引数は、Flask がテンプレートなどのリソースを見つけるのに役立ちます。
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
# app.run() starts the development server
print('App is ready to run')最初のルート
ルート は URL を関数(ビュー)に対応付けます。@app.route() デコレーターがパスを割り当て、関数の戻り値がレスポンス本文になります。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, world!'
print('Route / -> home')複数のルート
必要な数だけルートを定義できます。それぞれのパスに専用のビュー関数を割り当てます。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Home page'
@app.route('/about')
def about():
return 'About page'
print('Two routes defined')動的な URL 部分
<variable> を使って URL の一部を取得します。Flask はそれらをビューの引数として渡します。
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user(username):
return 'Profile of ' + username
print('URL /user/alice -> show_user')型付きコンバーター
<int:post_id> のようなコンバーターを追加すると、Flask が値を検証して適切な型に変換します。
from flask import Flask
app = Flask(__name__)
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post number ' + str(post_id)
print('post_id arrives as an int')HTTP メソッド
デフォルトでは、ルートは GET を処理します。methods=['GET', 'POST'] を渡すと、ほかのメソッドも受け付けられます。
from flask import Flask
app = Flask(__name__)
@app.route('/submit', methods=['GET', 'POST'])
def submit():
return 'Handled GET or POST'
print('submit accepts GET and POST')メソッドの確認
ビュー内では、request.method によって使用されたメソッドが分かるため、それに応じて処理を分岐できます。
from flask import Flask, request
app = Flask(__name__)
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
return 'Form submitted'
return 'Show the form'
print('Branch on request.method')ステータスコードの返却
(body, status_code) のタプルを返すと HTTP ステータスを設定できます。たとえば、見つからない場合は 404 を指定します。
from flask import Flask
app = Flask(__name__)
@app.route('/missing')
def missing():
return 'Not here', 404
print('Returns body with status 404')URL の構築
url_for('view_name') はビューの名前から URL を生成します。変更される可能性のあるパスをハードコードせずに済みます。
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/about')
def about():
return 'About'
# url_for('about') -> '/about'
print('url_for builds URLs by view name')サーバーの起動
app.run(debug=True) を呼び出すと開発サーバーが起動します。デバッグモードでは変更時にリロードされ、役立つエラーページが表示されます。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hi'
if __name__ == '__main__':
app.run(debug=True)理解度チェック
ルーティングに関する知識を確認しましょう。
まとめ
Flask のルートとビューを構築しました。
app = Flask(__name__)でアプリを作成します@app.route()で URL をビュー関数に対応付けます<int:id>で動的な URL 部分を取得して変換しますmethods=とrequest.methodで HTTP メソッドを処理しますurl_for()で URL を構築し、app.run()でサーバーを起動します
よくある質問
「ルートとビュー」レッスンは無料ですか?
はい。「ルートとビュー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「ルートとビュー」で何を学びますか?
HTTPリクエストを処理します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「ルートとビュー」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。