Django模拟从数据库取用户信息跳转到首页

时间:2021-10-31 04:27:35

Django模拟从数据库取用户信息,跳转到首页。

 

1、数据库取用户数据。首先需要造model模型。

from django.db import models

class UserInfo(models.Model):

    username = models.CharField(max_length=32)

    password = models.CharField(max_length=64)

     def __str__(self):

        return self.username

 分析def __str__(self):使用方法。

 Django模拟从数据库取用户信息跳转到首页

  加上这个处理结果

 Django模拟从数据库取用户信息跳转到首页 Django模拟从数据库取用户信息跳转到首页

 

2、配置数据库login登录账号密码。

先插入数据两条记录。

 Django模拟从数据库取用户信息跳转到首页

 数据里面查指定数据

需要先创建models。

obj = models.UserInfo.objects.filter(username=user, password=pwd).first()

 前端传过来的数据。

user = request.POST.get(‘user‘, None) #避免提交空,时异常
user = user.strip() #用户输入末尾有空格是去空格
pwd = request.POST.get(‘pwd‘)

 Django模拟从数据库取用户信息跳转到首页

  浏览器访问,

 Django模拟从数据库取用户信息跳转到首页

 自此完成并处理了,从数据拿账号密码的问题。

代码问题。

Login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
  <form action="/login/" method="post">
      {% csrf_token %}
      <p>
          <label>用户名</label>
          <input name="user" type="text">
      </p>
      <p>
          <label>密码</label>
          <input name="pwd" type="pwd">
          <input type="submit" value="提交" >
          <span style="color: red;">{{error_msg }}</span>
      </p>
  </form>
</body>
</html>

 Index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
   <span>Welcome to <b>{{ loginuser }}</b></span>
</body>
</html>

 Views.py配置。

#coding:utf-8
from django.shortcuts import render, HttpResponse, redirect
from loginb import models
def login(request):
    error_msg = ‘‘
    if request.method == "GET":
        return render(request, ‘login.html‘)
    elif request.method == "POST":
        user = request.POST.get(‘user‘, None) #避免提交空,时异常
        user = user.strip() #用户输入末尾有空格是去空格
        pwd = request.POST.get(‘pwd‘)
        print(user, pwd)
        obj = models.UserInfo.objects.filter(username=user, password=pwd).first()
        # print (obj)
        if obj:
            # res = redirect(‘/index‘)
            # res.set_cookie(‘loginuser‘, user)
            # return res
            return redirect(‘/index‘)
        else:
            error_msg = "账号或者密码不对"
            return render(request, ‘login.html‘, {‘error_msg‘: error_msg})
    else:
        return render(request, ‘login.html‘)
def index(request):
    user_list = models.UserInfo.objects.all()
    # print(useraa.query)  # 打印SQL语句
    return render(request, ‘index.html‘, {‘user_list‘: user_list,})

 遗留问题,

怎么将登录请求的用户信息传递给跳转页面。这里需要借助session配置

 处理cookies问题。配置用户只有在登录情况下,才可以使用index,否则跳转页面。

只需要修改views.py配置信息,

Django模拟从数据库取用户信息跳转到首页

  实现目的:只有登录之后才可以访问index页面,否则一致停在login登录页面。