首先,要在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)
    

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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐