python:②WEBアプリを作ってみよう(色々表示してみる)
前回は、プロジェクトとアプリを作って、『Hello My name is Tamura』とブラウザで表示させることができました。
今回は、別の方法で色々な文字を画面に表示させてみましょう。
テンプレートに値を渡す
アプリフォルダにあるviews.pyを編集します。
テンプレートに値を渡すには、render関数の第三引数に辞書を渡します。上記のような感じ。
そして、templatesにおいて、index.htmlで変数を使用することができます。
python manage.py runserver
で確認してみると、以下のように表示することができました。
アクセスするURLによって、表示するテンプレートを変える
http://127.0.0.1:8000/sub というURLに飛ばされた場合に違うテンプレートを表示してみましょう。
hello_appのurls.pyに下記を追加する
hello_appのviews.pyにsub_indexメソッドを追加する
新しいテンプレートを作成する。templatesフォルダにsub.htmlを作成
http://127.0.0.1:8000/sub にアクセスしてみると、下記のように表示されます。views.pyのsub_indexメソッドのnameを変更すると、私は田村ではないです と表示されます。
for文を使う
for文をテンプレートで使うには以下のようにしてあげるとOK
hello_app -> views.py
def sub2_index(request):
d = {
'range': range(10),
}
return render(request, 'sub2.html', d)
hello_app -> teplates -> sub2.html
<body>
{% for i in range %}
{{ i }}
{% endfor %}
</body>
sub2.html
<body>
{% for i in range %}
{{ i }}
{% endfor %}
</body>
フォームを作って、入力値を受け取る
テンプレートを作る
hello_app -> template -> sub3.html
urls.pyを編集
hello_app -> views.pyにメソッド作成
def get_query(request):
d = {
'name': request.GET.get('name')
}
return render(request, 'sub3.html', d)
http://127.0.0.1:8000/sub3 にアクセスしてみると
入力すると下記のように入力された値を受け取り、表示させます。
テンプレートを作ったり、views.pyやurls.pyを編集する順序がそれぞれバラバラで書いてしまっていますが、ご了承ください。
過去記事
この記事が気に入ったらサポートをしてみませんか?