Web开发-Django表单
生活随笔
收集整理的這篇文章主要介紹了
Web开发-Django表单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Django表單
- 簡述
- 雖然在Django的核心組件中沒有看到表單的影子,但是熟悉Web開發的都知道,表單控制是至關重要的。
- 表單一般放在某個app目錄下的forms.py文件中。
- 基本操作
- 表單綁定狀態
- Django為繼承自Form類的表單維護了一個綁定(bound)狀態。
- 如果一個表單對象在實例化后被賦予過數據內容,則稱該表單出于bound狀態。只有處于bound狀態的表單才具有數據驗證功能(validate data)功能。
- 如果未被賦予過數據內容,則表單處于unbound狀態。只有處于unbound狀態的表單才能被賦予數據,使表單變為bound狀態。
- 可以通過Form對象的is_bound查看表單狀態。
- 表單數據驗證
- 在服務端利用Python代碼驗證表單數據的合法性,分為兩類。
- 字段屬性驗證
- 驗證表單中的字段是否符合特定的格式要求,如非空字段是否賦值。
- 自定義邏輯驗證
- 驗證開發者自定義的一些要求。
- 字段屬性驗證
- 在服務端利用Python代碼驗證表單數據的合法性,分為兩類。
- 檢查變更字段
- 當收到用戶表單數據的POST請求時,經常需要驗證用戶是否修改了表單數據然后進行相應的處理,Django的Form提供了has_changed()來判斷用戶是否修改過表單數據。
- 表單綁定狀態
- 嘗試使用
- 源碼
- views.py
- def formtest(request):form = UserForm()return render(request, 'render.html', {'user': form})def hello(request):form = UserForm(request.POST)if form.is_valid():return HttpResponse("Hello World!!!")else:return HttpResponse("Error")
- forms.py
- from django.forms import ModelForm, ValidationErrorfrom app2.models import Userclass UserForm(ModelForm):class Meta:model = Userfields = '__all__'def clean(self):cleaned_data = super(UserForm, self).clean()name = cleaned_data.get("name")if name is None or name == "":raise ValidationError("輸入name")return cleaned_data
- 補充說明
- 具體介紹了表單的相關內容
- 本項目參考書為《Python高效開發實戰》劉長龍著
- 使用到的所有重要包會列在requirements.txt文件中
- 具體代碼可以查看我的GitHub,歡迎star或者fork
- 關于admin定制即個性化管理員站點這里不敘述了,我自己也曾經用Django開發過一個購票Demo,可以查看我的Github
總結
以上是生活随笔為你收集整理的Web开发-Django表单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web开发-Django视图层
- 下一篇: 机器学习-预测之时间序列分析预测法原理及