摘要:我覺得中的就是用與渲染成語言的代碼。用來幫助我們減少寫的工作量。下面的代碼就是本博客實(shí)現(xiàn)評論功能的。
這篇文章談一下我對 Django 中 forms的簡單理解,確切的說像是一種代碼的說明。
我覺得 Django 中的forms 就是view用與渲染成html語言的代碼。用來幫助我們減少寫html的工作量。
下面的代碼就是本博客實(shí)現(xiàn)評論功能的forms。
from django import forms from .models import Comment import mistune class CommentForm(forms.ModelForm): nickname = forms.CharField( label="昵稱", max_length=50, widget=forms.widgets.Input( attrs={"class": "form-control", "style": "width: 60%;"} ) ) email = forms.CharField( label="Email", max_length=50, widget=forms.widgets.Input( attrs={"class": "form-control", "style": "width: 60%;"} ) ) website = forms.CharField( label="網(wǎng)站", max_length=100, widget=forms.widgets.URLInput( attrs={"class": "form-control", "style": "width: 60%;"} ) ) content = forms.CharField( label="內(nèi)容", max_length=500, widget=forms.widgets.Textarea( attrs={"row": 6, "class": "form-control"} ) ) def clean_content(self): content = self.cleaned_data.get("content") if len(content) < 10: raise forms.ValidationError("內(nèi)容長度太短了!") content = mistune.markdown(content) return content class Meta: model = Comment fields = ["nickname", "email", "website", "content"]
下面我一段一段的解釋一下:
from django import forms # 導(dǎo)入 forms 模塊 from .models import Comment # 導(dǎo)入Comment模型,評論的需要填寫的字段均來自于此 import mistune # 導(dǎo)入 mistune 模塊,為了使評論支持markdown語法 class CommentForm(forms.ModelForm): # 我們寫的CommentForm 繼承了forms模塊中的ModelForm類 nickname = forms.CharField( # 這里我們對模型中的每一個字段對應(yīng)的表單進(jìn)行設(shè)置 label="昵稱", # 這里對應(yīng)html label標(biāo)簽中的文字 max_length=50, # 設(shè)置表單中填寫的最大長度 widget=forms.widgets.Input( # 設(shè)置html中的標(biāo)簽類型為input attrs={"class": "form-control", "style": "width: 60%;"} # 規(guī)定input的樣式 ) ) def clean_content(self): # 判斷評論長度和表單數(shù)據(jù)驗(yàn)證 content = self.cleaned_data.get("content") if len(content) < 10: raise forms.ValidationError("內(nèi)容長度太短了!") content = mistune.markdown(content) return content class Meta: # 規(guī)定類的元數(shù)據(jù) model = Comment fields = ["nickname", "email", "website", "content"]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/45056.html
摘要:在中,對數(shù)據(jù)進(jìn)行校驗(yàn)有兩種方式一種是通過中校驗(yàn),一種是通過校驗(yàn)。所有內(nèi)容都是基于的官網(wǎng)文檔整理而來數(shù)據(jù)校驗(yàn)的觸發(fā)中的校驗(yàn)是通過調(diào)用方法來執(zhí)行的。注意值得注意的是上面多次提到,在執(zhí)行方法的時候,是不會進(jìn)行數(shù)據(jù)校驗(yàn)的。 在Django中,對數(shù)據(jù)進(jìn)行校驗(yàn)有兩種方式:一種是通過Form中校驗(yàn),一種是通過Model校驗(yàn)。在次,我對Model中的校驗(yàn)方法做下記錄。 所有內(nèi)容都是基于Django1....
摘要:前言去年十月開始學(xué)習(xí)一開始寫了一個的爬蟲將自己在過程中的一些經(jīng)驗(yàn)寫了下來沒想到那么多人支持。但目前也只是處于能用狀態(tài)。及如何將一個文件夾下文件變成一個包呢。而不僅僅是一個服務(wù)器無法理解此請求。 前言 去年十月開始學(xué)習(xí)python一開始寫了一個python的爬蟲 將自己在過程中的一些經(jīng)驗(yàn)寫了下來沒想到那么多人支 持。之后因?yàn)橐恍?shí)驗(yàn)室的需求就轉(zhuǎn)投python的web開發(fā) 一開...
摘要:核心的幾個組件模板引擎,框架,請求和應(yīng)答的處理還是有一些難度,但是經(jīng)過一步步的分析和編碼還是能夠完成功能。模板引擎模板引擎是另外一個比較大和的模塊。 前前后后,大概兩個月的時間,lunar這個項(xiàng)目終于達(dá)到了一個很高的完整度。 Lunar是一個Python語言的網(wǎng)絡(luò)框架,類似于Django,F(xiàn)lask,Tornado等當(dāng)下流行的web framework。最初有這個想法是在大二下學(xué)期,...
摘要:本文主要是用來記錄自己學(xué)習(xí)的過程。其中可能會有很多自己的錯誤理解。這里主要會用到的知識有百度百科阮一峰理解架構(gòu)其余請自行百度。所有的全局設(shè)置都放在的字典中。使用標(biāo)準(zhǔn)的權(quán)限,未認(rèn)證的用戶只讀權(quán)限不要忘記將添加到你的中。 本文主要是用來記錄自己學(xué)習(xí)django-rest-framework的過程。其中可能會有很多自己的錯誤理解。 這里主要會用到的知識有 1. [django](https:...
摘要:本文主要是用來記錄自己學(xué)習(xí)的過程。其中可能會有很多自己的錯誤理解。這里主要會用到的知識有百度百科阮一峰理解架構(gòu)其余請自行百度。所有的全局設(shè)置都放在的字典中。使用標(biāo)準(zhǔn)的權(quán)限,未認(rèn)證的用戶只讀權(quán)限不要忘記將添加到你的中。 本文主要是用來記錄自己學(xué)習(xí)django-rest-framework的過程。其中可能會有很多自己的錯誤理解。 這里主要會用到的知識有 1. [django](https:...
閱讀 1062·2021-11-24 10:27
閱讀 3337·2021-11-18 10:02
閱讀 2396·2021-11-16 11:45
閱讀 3161·2021-11-15 18:10
閱讀 822·2021-09-22 15:23
閱讀 1529·2019-08-30 15:53
閱讀 3021·2019-08-30 13:20
閱讀 1666·2019-08-30 12:53