Web开发

首页 » 常识 » 诊断 » Django2Web项目开发入门笔记1
TUhjnbcbe - 2023/4/8 21:04:00
白癜风治疗多少钱 https://m-mip.39.net/baidianfeng/mipso_4513569.html

这一篇教程,我们一起来学习使用Django发送电子邮件。

首先,我们先来看一下撰写邮件的页面。

还有收到的邮件内容。

接下来,我们结合Django的表单完成上述功能。

一、创建表单类。

打开“forms.py”文件,根据截图中的页面元素,我们创建表单类“FileMailForm”,这个类包含邮件附件字段。

示例代码:(forms.py)

fromdjangoimportforms

classFileMailForm(forms.Form):

addressees=forms.CharField(label=收件地址,help_text=多个收件地址请用逗号“,”分隔,label_suffix=:,

widget=forms.TextInput(attrs={style:width:px,maxlength:}))

#定义收件地址字段,因为支持群发,所以未使用“EmailField”。

subject=forms.CharField(label=邮件标题,label_suffix=:,

widget=forms.TextInput(attrs={style:width:px,maxlength:}))

#定义邮件标题字段,指定文本框宽度并限定字符数量。

message=forms.CharField(label=邮件内容,label_suffix=:,widget=forms.Textarea(attrs={cols:60,rows:10}))

#定义邮件内容字段,指定使用文本域(多行文本框)标签,并设置标签的属性。

file=forms.FileField(label=添加附件,label_suffix=:)

#定义邮件附件的字段。

cc_myself=forms.BooleanField(label=抄送自己,label_suffix=:,required=False)

#定义抄送给发件人字段,指定为布尔类型(真假值)的字段。

提示:邮件地址字段可以使用“EmailField”,但不支持对多个邮件地址进行验证。

这里,我们还要考虑到发送邮件时会有两种情况:有附件和没有附件。

所以,我们创建一个“FileMailForm”类的子类“TextEmailForm”,子类中对“file”字段进行重写,当没有邮件附件时,通过这个类实例化表单。

示例代码:

classTextEmailForm(FileMailForm):

file=None

二、创建模板

1、创建一个HTML文件“email.html”,用于撰写邮件。

示例代码:(email.html)

!DOCTYPEhtml

html

head

metacharset=UTF-8

title撰写邮件/title

/head

body

formaction=/send_email/method=postnovalidate=novalidateenctype=multipart/form-data

{%csrf_token%}

{%forfieldinemail_form%}

div

{{field.label_tag}}

{{field}}

{%iffield.help_text%}

spanstyle=color:orange{{field.help_text}}/span

{%endif%}

/div

br

{%endfor%}

inputtype=submitvalue=发送邮件

/form

/body

/html

在上方代码中,form标签额外添加了两个属性,“novalidate”属性用于禁用浏览器的字段验证,“enctype”属性规定在发送到服务器之前,如何对表单数据进行编码,此处的设置”multipart/form-data”表示不进行编码,在使用包含文件上传元素的表单时,必须使用这个属性值。

2、创建一个HTML文件“thanks.html”,用于发送邮件后的提示。

示例代码:(thanks.html)

!DOCTYPEhtml

html

head

metacharset=UTF-8

title感谢/title

/head

body

您已发送b{{count}}/b封邮件到以下

1
查看完整版本: Django2Web项目开发入门笔记1