一个小的登录查看的session案例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个小的登录查看的session案例相关的知识,希望对你有一定的参考价值。

需求

1,创建两个页面,一个是登录页面,一个是登录成功后,显示个人信息的页面
2,登录页面是基于session
3、数据表(男生,女生,男女关系)
4、登录页(用户名,密码,性别,一周免登陆)
5、内容页,异性列表和有关系的列表

设计

views的改变

把登陆的代码和关系内容的代码分开,所以创建了views目录,并且把不同的内容写到了不同的模块中。如图
技术分享图片
各个py文件代码

from django.shortcuts import render,HttpResponse,redirect
from app_01 import models
def acc_login(request):
    if request.method == "GET":
        return render(request,‘acclogin.html‘)
    else:
        user = request.POST.get(‘username‘)
        gender = request.POST.get(‘gender‘)
        pwd = request.POST.get(‘password‘)
        rmb = request.POST.get(‘rmb‘)
        print(user,gender,pwd,rmb)
        if gender == "1":
            obj = models.AccBoy.objects.filter(username=user,password=pwd).first()

        else:
            obj = models.AccGirl.objects.filter(username=user,password=pwd).first()
        if not obj:
            return render(request,‘acclogin.html‘,{‘msg‘:‘用户名或密码错误‘})
        else:
            request.session[‘user_info‘] = {‘user_d‘:obj.id,‘gender‘:gender,‘rmb‘:rmb,‘user‘:user,‘nickname‘:obj.nickname}
            return redirect(‘/accindex.html‘)

def acclogout(request):
    if request.session.get(‘user_info‘):
        request.session.clear()
        return redirect(‘/acclogin.html‘)
from django.shortcuts import render,redirect,HttpResponse
from app_01 import models

def accindex(requtst):
    if not requtst.session.get(‘user_info‘):
        return redirect(‘/acclogin.html‘)
    else:
        gender = requtst.session.get("user_info").get(‘gender‘)
        if gender == ‘1‘:
            user_list = models.AccGirl.objects.all()
        else:
            user_list = models.AccBoy.objects.all()
        return render(requtst,‘accindex.html‘,{‘user_list‘:user_list})

html代码

accindex

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>accindex</title>
</head>
<body>
    <h2>当前用户:{{ request.session.user_info.nickname }}</h2>
    <p><a href="/acclogin.html">注销用户</a></p>
    <h2>用户列表</h2>
    <hr>
    <ul>
        {% for item in user_list %}
            <li>{{ item.username }}</li>
        {% endfor %}
    </ul>
</body>
</html>

acclogin代码

<form action="/acclogin.html" method="post">
    {% csrf_token %}
    <p><input type="text" name="username">用户名</p>
    <p><input type="password" name="password">密码</p>
    <input type="radio" name="gender" value="1">男
    <input type="radio" name="gender" value="2">女
    <input type="checkbox" value="11" name="rmb" />一周内免登陆
    <p><input type="submit" value="提交"></p>{{ msg }}
</form>

以上是关于一个小的登录查看的session案例的主要内容,如果未能解决你的问题,请参考以下文章

13 Servlet——session案例2:用户登录主页显示用户名和注销登录

Java 之 Session 包含验证码登录案例

Session实现用户登录案例

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

Session & Cookie登录案例 January 27,2020

session应用----登录验证小案例