Bir POST Formu
Coddy'nin Django Journey'sinin Formlar bölümünün bir parçası. Ders 2 / 20.
/events/new/ sayfası ve bu sayfanın görünümü hazır, ancak sayfada etkinlik eklemek için bir form yok. Verileri değiştiren bir formda method="post" kullanılır: tarayıcı alanları URL'de değil, isteğin gövdesinde gönderir. Görünüm bunları her girişin name değerine göre anahtarlayarak request.POST içinden okur.
Django bir kural daha ekler. Başka bir web sitesi, sitenize POST isteği gönderen bir formu gizleyebilir ve ziyaretçinin tarayıcısı bu formu çerezleriyle gönderebilir: buna CSRF adı verilen bir saldırı denir. Bu nedenle Django, kendi sayfanızdan alınan gizli bir belirteç içermeyen tüm POST isteklerini 403 Forbidden ile reddeder. Formun içindeki {% csrf_token %} bu belirteci ekler. Bir bülten formu:
<form method="post">
{% csrf_token %}
<label for="email">Email</label>
<input id="email" name="email" type="email">
<button type="submit">Subscribe</button>
</form>Bir <label>, for değeri id değeriyle eşleşen girdiyi adlandırır; type="date" ise takvim gösterir.
Görev
Kolaynew_event.html dosyasında, görünümün beklediği formu yaz:
- Alanlarını POST ile gönderir ve CSRF belirtecini taşır.
- Görünümün okuduğu her değer için etiketli bir giriş alanı. Tarih giriş alanı bir takvim açar.
- Bir gönder düğmesi.
Çalıştır'a bas, bir etkinlik ekle, ardından ana sayfayı aç.
Kendin dene
{% extends "events/base.html" %}
{% block title %}Add an event{% endblock %}
{% block content %}
<h1>Add an event</h1>
{# Formu buraya yazın #}
{% endblock %}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Formlar bölümündeki tüm dersler
Kendi başına pratik yap: Django playground