首先,要在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)
最后,就可以运行试试了,如果有问题,欢迎留言!
下次会出登录的教程。