【Django】フォームで送信する方法

まず、index.htmlにフォームを用意します。

hello/templates/index.html

<body class="container">
  <h1 class="display-4 text-primary">{{title}}</h1>
  <p class="h6 my-3">{{msg}}</p>
  <form action="{% url 'form' %}" method="post">
    {% csrf_token %}
    <label for="msg" class="form-label">message: </label>
    <input id="msg" type="text" name="msg" class="form-control">
    <input type="submit" value="click" class="btn btn-primary">
  </form>
</body>

次にビュー関数を作成します。

hello/views.py

from django.shortcuts import render

def index(request):
  params = {
    'title':'Hello/Index',
    'msg':'お名前は?',
  }
  return render(request, 'hello/index.html', params)

def form(request):
  msg = request.POST['msg']
  params = {
    'title':'Hello/Form',
    'msg':'こんにちは、' + msg + 'さん。',
  }
  return render(request, 'hello/index.html', params)

urlpatternsの修正

hello/urls.py

from django.urls import path
from . import views

urlpatterns = [
  path('', views.index, name='index'),
  path('form', views.form, name='form'),
]

webブラウザにてアクセスすると、フォームが表示されるので適当な文字を入力して「click」をクリックします。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。