0Pricing
Python Academy · レッスン

ルートとビュー

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ルートとビュー
  2. Jinja2によるテンプレート
  3. フォームとリクエストデータ
  4. RESTエンドポイントの構築
← Python Academyに戻る