Django 構(gòu)建模板form表單的兩種方法
通常情況下,我們想構(gòu)建一張表單時(shí)會(huì)在模板文件login.html中寫(xiě)入
<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>
下面說(shuō)說(shuō)我們?cè)谑褂胐jango是如何在模板文件中生成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 瀏覽器限制用戶輸入的字符串長(zhǎng)度 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>
渲染后的頁(yè)面效果
2、將數(shù)據(jù)表的字段映射到模板文件form表單
數(shù)據(jù)表courses_lesson字段如下
在app下新建forms.py(/users/forms.py)
#此處我們假設(shè)你的項(xiàng)目文件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>
頁(yè)面效果圖:
所有表單類都作為 django.forms.Form 或者 django.forms.ModelForm 的子類來(lái)創(chuàng)建。您可以把 ModelForm
想象成 Form
的子類。實(shí)際上 Form
和 ModelForm
從(私有) BaseForm
類繼承了通用功能,但是這個(gè)實(shí)現(xiàn)細(xì)節(jié)不怎么重要。
到此這篇關(guān)于Django 構(gòu)建模板form表單的兩種方法的文章就介紹到這了,更多相關(guān)Django 構(gòu)建模板form表單的兩種方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Django表單外鍵選項(xiàng)初始化的問(wèn)題及解決方法
- django表單中的按鈕獲取數(shù)據(jù)的實(shí)例分析
- Django def clean()函數(shù)對(duì)表單中的數(shù)據(jù)進(jìn)行驗(yàn)證操作
- Django form表單與請(qǐng)求的生命周期步驟詳解
- Django model.py表單設(shè)置默認(rèn)值允許為空的操作
- Django表單提交后實(shí)現(xiàn)獲取相同name的不同value值
- Django框架獲取form表單數(shù)據(jù)方式總結(jié)
- django之從html頁(yè)面表單獲取輸入的數(shù)據(jù)實(shí)例
- 解決django中form表單設(shè)置action后無(wú)法回到原頁(yè)面的問(wèn)題
- django-xadmin根據(jù)當(dāng)前登錄用戶動(dòng)態(tài)設(shè)置表單字段默認(rèn)值方式
- Django給表單添加honeypot驗(yàn)證增加安全性
相關(guān)文章
python實(shí)現(xiàn)統(tǒng)計(jì)文本中單詞出現(xiàn)的頻率詳解
這篇文章主要介紹了python統(tǒng)計(jì)文本中單詞出現(xiàn)頻率,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05云原生Docker部署Django和mysql項(xiàng)目全過(guò)程
最近在學(xué)習(xí)用docker部署Django項(xiàng)目,經(jīng)過(guò)百折不撓的鼓搗,終于將項(xiàng)目部署成功,下面這篇文章主要給大家介紹了關(guān)于云原生Docker部署Django和mysql項(xiàng)目的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12使用pytorch實(shí)現(xiàn)可視化中間層的結(jié)果
今天小編就為大家分享一篇使用pytorch實(shí)現(xiàn)可視化中間層的結(jié)果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python中的單引號(hào)雙引號(hào)區(qū)別知識(shí)點(diǎn)總結(jié)
在本篇文章中小編給大家整理了關(guān)于python中的單引號(hào)雙引號(hào)有什么區(qū)別的相關(guān)知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們參考下。2019-06-06Python 中的 XML 轉(zhuǎn)換利器xml2dict詳解
xml2dict是一個(gè)Python庫(kù),可以將XML數(shù)據(jù)轉(zhuǎn)換為字典,也支持反向轉(zhuǎn)換,它簡(jiǎn)化了XML的處理,使之像處理JSON一樣簡(jiǎn)單,適用于Web服務(wù)數(shù)據(jù)交換、配置文件讀取等場(chǎng)景,安裝簡(jiǎn)單,使用方便,還可以通過(guò)自定義轉(zhuǎn)換器處理XML屬性和命名空間2024-10-10Python實(shí)現(xiàn)根據(jù)日期獲取當(dāng)天凌晨時(shí)間戳的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)根據(jù)日期獲取當(dāng)天凌晨時(shí)間戳的方法,涉及Python針對(duì)日期與時(shí)間戳的相關(guān)轉(zhuǎn)換、運(yùn)算等操作技巧,需要的朋友可以參考下2019-04-04python實(shí)現(xiàn)郵件循環(huán)自動(dòng)發(fā)件功能
這篇文章主要介紹了python實(shí)現(xiàn)郵件循環(huán)自動(dòng)發(fā)件功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09詳解DBSCAN算法原理及其Python實(shí)現(xiàn)
DBSCAN,即Density-Based Spatial Clustering of Applications with Noise,基于密度的噪聲應(yīng)用空間聚類,本文將詳細(xì)介紹DBSCAN算法的原理及其Python實(shí)現(xiàn),需要的可以參考下2023-12-12