Django 構(gòu)建模板form表單的兩種方法
通常情況下,我們想構(gòu)建一張表單時會在模板文件login.html中寫入
<form action="/your-name/" method="post">
<label for="your_name">Your name: </label>
<input id="your_name" type="text" name="your_name" value="{{ current_name }}">
<input type="submit" value="OK">
</form>
下面說說我們在使用django是如何在模板文件中生成form表單:
1、自定義顯示的字段:
假如我們要在模板中生成一張含有username和content的表單
在app下新建forms.py(/users/forms.py)
from django import forms class MessageGetForm(forms.Form): username = forms.CharField(label='用戶', max_length=5) #max_length 瀏覽器限制用戶輸入的字符串長度 content = forms.CharField(label='留言', max_length=100)
在視圖文件中引用上邊表單字段并傳遞給模板(users/view.py)
from apps.users.forms import MessageGetForm
class MessageView(View):
def get(self, request, *args, **kwargs):
message = MessageGetForm()
return render(request, "message.html", {"message": message})
在模板文件調(diào)用(message.html)
<form action="" method="get">
{{ message }}
</form>
渲染后的頁面效果

2、將數(shù)據(jù)表的字段映射到模板文件form表單
數(shù)據(jù)表courses_lesson字段如下

在app下新建forms.py(/users/forms.py)
#此處我們假設(shè)你的項目文件courses/models.py內(nèi)含有Lesson類from apps.courses.models import Lesson from django.forms import ModelForm class CoursesLessonForm(ModelForm): class Meta: model = Lesson fields = ['add_time', 'name', 'learn_times'] #要顯示的字段
在視圖文件中引用上邊表單字段并傳遞給模板(users/view.py)
from apps.users.forms import CoursesLessonForm
class MessageView(View):
def get(self, request, *args, **kwargs):
message = CoursesLessonForm()
return render(request, "message.html", {"message": message})
在模板文件調(diào)用(message.html)
<form action="" method="get">
{{ message }}
</form>
頁面效果圖:

所有表單類都作為 django.forms.Form 或者 django.forms.ModelForm 的子類來創(chuàng)建。您可以把 ModelForm 想象成 Form 的子類。實際上 Form 和 ModelForm 從(私有) BaseForm 類繼承了通用功能,但是這個實現(xiàn)細(xì)節(jié)不怎么重要。
到此這篇關(guān)于Django 構(gòu)建模板form表單的兩種方法的文章就介紹到這了,更多相關(guān)Django 構(gòu)建模板form表單的兩種方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Django表單外鍵選項初始化的問題及解決方法
- django表單中的按鈕獲取數(shù)據(jù)的實例分析
- Django def clean()函數(shù)對表單中的數(shù)據(jù)進(jìn)行驗證操作
- Django form表單與請求的生命周期步驟詳解
- Django model.py表單設(shè)置默認(rèn)值允許為空的操作
- Django表單提交后實現(xiàn)獲取相同name的不同value值
- Django框架獲取form表單數(shù)據(jù)方式總結(jié)
- django之從html頁面表單獲取輸入的數(shù)據(jù)實例
- 解決django中form表單設(shè)置action后無法回到原頁面的問題
- django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式
- Django給表單添加honeypot驗證增加安全性
相關(guān)文章
Python使用pickle進(jìn)行序列化和反序列化的示例代碼
這篇文章主要介紹了Python使用pickle進(jìn)行序列化和反序列化,幫助大家更好的理解和使用python的pickle庫,感興趣的朋友可以了解下2020-09-09
matplotlib實現(xiàn)熱成像圖colorbar和極坐標(biāo)圖的方法
今天小編就為大家分享一篇matplotlib實現(xiàn)熱成像圖colorbar和極坐標(biāo)圖的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12

