此筆記將介紹Django強大的Input Form功能,以下為基本流程。
1.
新增form.py並定義之,內容類似model
2.
將form.py import views.py,此動作可選兩種方法:
from . import form
from form import FormName
3.
新增新的view給form,如下:
def form_name_view(request):
form = forms.FormName()
return render(request, 'form.html', {'form' : form})
4.
設定urls.py的路由
5.
新增template接應view的form,以及templates資料夾路徑
完成
How to inject the form?
<form method="post">
{{ form.as_p }}
{% csrf_token %}
<input type="submit" value="Submit">
</form>
看了之後可能會有以下問題:
as_p是什麼?
inject 的form 加上as_p
將會被<p>包起來而完整的排好
{% csrf_token %}是什麼?
每當使用form發出http verb都要加上這個,否則form無法運行。此機制是利用django加密好的token來防止資安問題。
cleaned_data是什麼?
form input的資料,可利用form.cleaned_data['name']來讀取
沒有留言:
張貼留言