Django实现页面注册登录界面

增加数据
在acsign/models.py中创建用户数据:

class Users(models.Model):
    u_name = models.CharField(max_length=10)
    u_password = models.CharField(max_length=255)
    u_ticket = models.CharField(max_length=30, null=True)

在acsign/admin.py中增加如下代码可以在admin中显示新增数据Users:

admin.site.register(Users)

在控制台输入如下代码,更新数据库:

python manage.py makemigrations acsign
python manage.py sqlmigrate acsign 0002
python manage.py migrate

登录代码
在acsign/views.py中加入登录判断逻辑

def login(request):
    if request.method == 'GET':
        return render(request, 'acsign/login.html')

    if request.method == 'POST':
        # 如果登录成功,返回baidu界面
        name = request.POST.get('name')
        password = request.POST.get('password')
        # 查询用户是否在数据库中
        if Users.objects.filter(u_name=name).exists():
            user = Users.objects.get(u_name=name)
            if check_password(password, user.u_password):
                return HttpResponseRedirect('http://baidu.com')
            else:
                return render(request, 'acsign/login.html', {'password': '用户密码错误'})
        else:
            return render(request, 'acsign/login.html', {'name': '用户不存在'})

其中登录布局页面如acsign/acsign/login.html文件中所示:




  
  登录页面


{% csrf_token %} 登录学号:
登录密码:
点击注册

进入网址http://127.0.0.1:8000/acsign/login/进行登录,见面如下:
Django实现页面注册登录界面_第1张图片
注册代码
和登录类似在acsign/views.py中增加注册逻辑:

def regist(request):
    if request.method == 'GET':
        return render(request, 'acsign/regist.html')
    if request.method == 'POST':
        # 注册
        name = request.POST.get('name')
        password = request.POST.get('password')
        # 对密码进行加密
        password = make_password(password)
        Users.objects.create(u_name=name, u_password=password)
        return HttpResponseRedirect(reverse('acsign:login'))

在acsign/acsign/regist.html中对注册界面简单编辑:




  
  注册页面


{% csrf_token %} 注册学号:
注册密码:

点击“点击注册”链接进入:
http://127.0.0.1:8000/acsign/regist/ 页面,如下:
Django实现页面注册登录界面_第2张图片

你可能感兴趣的:(django,web)