見出し画像

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を編集する順序がそれぞれバラバラで書いてしまっていますが、ご了承ください。

過去記事



この記事が気に入ったらサポートをしてみませんか?