2017年10月29日 星期日

Django - Form概念筆記

此筆記將介紹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']來讀取





沒有留言:

張貼留言