文章目录
一、注册的思维
1.创建数据库保存注册的信息,比如姓名、学号、年龄、密码…。
2.通过POST方法获取数据库信息。
3.保存数据到数据库中。
二、注册实例
1.models中填写数据信息
代码如下(示例):
class User_Model(models.Model):
user=models.CharField(max_length=128,verbose_name='用户名',null=False,blank=False)
img = models.CharField(max_length=255, verbose_name='头像')
age = models.IntegerField(null=False,blank=False)
password= models.CharField(max_length=128, verbose_name='密码',null=False,blank=False)
2.同步数据库并写入数据库
Teaminal下使用命令python manage.py makemigrations同步数据库,python manage.py migrate 写入数据库
3.views.py文件中导入数据库
from app01.models import User_Model
4.views.py文件函数运行
class Register_View(View):
def get(self,request):
return render(request,'register.html',locals())
def post(self,request):
error_msg=''
user = request.POST.get('user')
age=request.POST.get('age')
img=request.FILES.get('img')
pwd1 = request.POST.get('password1')
pwd2 = request.POST.get('password2')
if user=='' or age=='' or pwd1=='':
error_msg='用户信息不能为空'
return render(request,'login.html',locals())
is_user = User_Model.objects.filter(user=user).first()
if is_user:
error_msg = '用户已存在'
return render(request, 'register.html', locals())
if pwd1 != pwd2:
msg = '密码不一致'
return render(request, 'register.html', locals())
img_path=os.path.join(STATICFILES_DIRS[0],img.name)
with open(img_path,'wb') as f:
for i in img.chunks():
f.write(i)
f.close()
img_url='/static/'+img.name
User_Model.objects.create(user=user,age=age,password=pwd1,img=img_url).save()
msg_200='注册成功'
return redirect('/app01/showuser/',locals())
View报错,应导入View
from django.views import View
5.创建对应的HTML文件
templates中 创建register.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="text-align: center">
<h3>注册</h3>
<form action="" method="post" enctype="multipart/form-data">
账号:<input type="text" name="user">
头像:<input type="file" name="img" width="100px" height="100px">
年龄:<input type="text" name="age">
密码:<input type="password" name="password1">
确认密码:<input type="password" name="password2">
<input type="submit" value="注册">
</form>
{% if error_msg %}
{{ error_msg }}
{% endif %}
{% if msg_200 %}
{{ msg_200 }}
{% endif %}
</div>
</body>
</html>
6.配置路由
from app01.views import Register_View
urlpatterns = [
path('register/',Register_View.as_view()),
]
6.运行
Terminal使用命令 python manage.py runserver,登入127.0.0.1:8000
想进入127.0.0.1:8000/admin/首先要创建一个超级用户
python manage.py createsuper
记住自己填写的用户名和密码,邮件可以不用填
还需在子项目中admin.py文件中填写
from app01.models import User_Model
admin.site.register(User_Model)