6(just form no database)

添加一个不需要写入数据库的表单contact

  1. 在forms.py中添加contact类
class ContactForm(forms.Form):
    name = forms.CharField(max_length=120)
    email = forms.EmailField()
    phonenumber = forms.CharField(max_length=20)
    def clean_email(self):
        email = self.cleaned_data.get('email')
        email_base, email_provider = email.split("@")
        email_domain, email_extension = email_provider.split('.')
        print(email_base, email_provider, email_domain, email_extension)
        if not email_domain == '163':
            raise forms.ValidationError("you should input 163 email")
        return email #实际上被写入的email的值
  1. 在views.py里添加如下代码:
def contact(request):
    form = ContactForm(request.POST or None)
    title = "hi contact"
    if form.is_valid():
        for key,value in form.cleaned_data.items():#python2.7使用iteritems()
            print(key,value)
    context = {
        'form':form,
        'title':title,
    }
    return render(request, 'contact.html', context)
  1. 在templates文件夹下面添加contract.html文件
<h1>{{ title }}</h1>
<form method="POST" action=""> {% csrf_token %}
    {{ form.as_p }}<!-- as_p的作用是让他按行显示,而不是显示在一行 -->
    <input type="submit" value="submit">
</form>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容