django编写个人博客(十二) 用django自带表单重新实现登录和注册功能

1、登录 

在项目公共目录下新建forms.py这是默认名字

这里两个字段用户名,密码,密码指定密码格式

 单独建立login.html

修改总的views.py

文章模板页面评论部分 

 对应效果

可以直接用form进行用户名和密码的验证,使功能更加清晰

先修改forms.py进行验证,并把用户传回

 

再修改一下对应方法即可 

现在在用bootstarp进行一些美化

修改forms文件,自定义一些属性,包括使用css类,框内提示等

 

再修改login.html,将表单放入对应的bootstrap容器和面板里

 注释那段可以把表单拆开,来自定义一些显示

效果

2进行注册操作

先修改forms.py

class RegForm(forms.Form):
    username = forms.CharField(label='用户名',
                               max_length=20,
                               min_length=3,
                               widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': '请输入3至20用户名'}))
    email = forms.EmailField(label='邮箱',
                             widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': '请输入邮箱名'}))
    password = forms.CharField(label='密码',
                               min_length=6,
                               widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': '请输入密码'}))

    password_again = forms.CharField(label='再输入一次密码',
                                     min_length=6,
                                     widget=forms.PasswordInput(
                                         attrs={'class': 'form-control', 'placeholder': '请输入密码'}))
    #验证用户是否存在
    def clean_username(self):
        username = self.cleaned_data['username']
        if User.objects.filter(username=username).exists():
            raise forms.ValidationError('用户名已存在')
        return username
    #验证邮箱是否存在
    def clean_email(self):
        email = self.cleaned_data['email']
        if User.objects.filter(email=email).exists():
            raise forms.ValidationError('邮箱已存在')
        return email
    #验证密码是否一致
    def clean_password_again(self):
        password = self.cleaned_data['password']
        password_again = self.cleaned_data['password_again']
        if password != password_again:
            raise forms.ValidationError('两次输入的密码不一致')
        return password_again

 对应url

修改views.py增加注册方法 

 

修改对应模板页面 

{%extends 'base.html'%}


{%block title%}
我的网站|注册
{%endblock%}


{%block nav_home_active%}
active
{%endblock%}
{%block content%}
<div class="cotainer">
    <div class="row">
        <div class="col-xs-4 col-xs-offset-4">
            <div class="panel panel-default">
  <div class="panel-heading">
    <h3 class="panel-title">注册</h3>
  </div>
  <div class="panel-body">
      <form action="#" method="POST">
    {%csrf_token%}
          <!--
          {{reg_form}}
          -->

    {%for field in reg_form%}
   <label for="{{field.id_for_label}}">{{field.label}}</label>
          {{field}}
          <p class="text-danger">{{field.errors.as_text}}</p>
          {%endfor%}

          <span class="pull-left text-danger">{{reg_form.non_field_errors}}</span>

    <input type="submit" value="提交" class="btn btn-primary pull-right">
             </form>
        </div>

  </div>
</div>

    </div>
</div>

{% endblock %}

改一下博客的模板页面

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值