django通过表单实现注册功能,数据存入mysql

本文详细介绍了如何在Django中使用MySQL进行数据迁移创建表,以及如何定义注册表单、处理用户输入并实现注册功能。在HTML中调用表单,通过POST方法检查密码一致性,成功则保存至数据库,失败则显示错误信息。完整流程帮助读者理解Django用户注册功能的实现。
摘要由CSDN通过智能技术生成

首先,要在django中配置好mysql,建好模型类,通过数据迁移,在mysql中建表
(不会的可以参考之前的博客内容)
然后,在app目录下新建一个froms的文件夹,并根据需求定义好表单
我的表单是用来注册的,所以只用到了用户,密码和确认密码

#用户注册
class FinalFormRegister(forms.Form):
     输入用户 = forms.CharField(max_length=20)
     输入密码 = forms.CharField(max_length=30)
     确认密码 = forms.CharField(max_length=30)

然后,在注册页面的html里调用表单

{% csrf_token %} #这句话是为了避免一些报错,一定要写!!!

<h2 style="margin-top: 30px">欢迎注册</h2>
<form action="/register/" method="post" style="padding-top: 30px">
    {% csrf_token %}
    {{ form.as_p }}    #.as_p是为了给刚才定义的表单分行显示,如果想一行显示就去掉
    <input type="submit" value="提交">
</form>

然后,在views视图写注册函数,
逻辑:如果捕捉到的是“GET”方法,那就直接返回注册页面
如果捕捉到的是“POST”方法,那就说明有数据输入
用户按照要求输入账号、密码和确认密码
如果密码和确认密码一样,那就返回注册成功页面,并且将用户和密码存入mysql
如果密码和确认密码不一样,那就返回注册失败页面,数据不会被存入mysql

def register(request):
    if request.method == 'POST':
        form1 = FinalFormRegister(request.POST)
        if form1.is_valid():
            dict1={}
            dict1['userName'] = form1.cleaned_data['输入用户']
            dict1['password'] = form1.cleaned_data['输入密码']
            dict1['passwords'] = form1.cleaned_data['确认密码']
        if dict1['password']==dict1['passwords']:
            final.objects.get_or_create(username=dict1['userName'],password=dict1['password'])
            print("用户:",dict1['userName'],"注册成功")
            return render(request, 'registersuccessful.html', {'userName': dict1['userName']})
        else:
            return render(request, 'registerlose.html', {'userName': dict1['userName']})
        return render(request, 'registerlose.html', {'userName': dict1['userName']})
    else:
        form = FinalFormRegister()
    dict2 = {}
    dict2['form'] = form
    return render(request, 'register.html', context=dict2)
    

最后,就可以运行试试了,如果有问题,欢迎留言!
下次会出登录的教程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值