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):使用方法。
加上这个处理结果
2、配置数据库login登录账号密码。
先插入数据两条记录。
数据里面查指定数据
需要先创建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‘)
浏览器访问,
自此完成并处理了,从数据拿账号密码的问题。
代码问题。
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配置信息,
实现目的:只有登录之后才可以访问index页面,否则一致停在login登录页面。