当前位置: 移动技术网 > IT编程>脚本编程>Python > Django 使用 cookie 实现简单的用户管理

Django 使用 cookie 实现简单的用户管理

2019年06月14日  | 移动技术网IT编程  | 我要评论

2017考研成绩公布时间,郎溪房屋出租,王平顺

1.保存在用户浏览器
2.可以主动清除
3.可以被伪造
4.跨域名 cookie 不共享


创建一个项目:user_manager 和应用: app01

创建数据库,添加 models.py

from django.db import models

# create your models here.


class classes(models.model):
    caption = models.charfield(max_length=32)


class student(models.model):
    name = models.charfield(max_length=32)
    cls = models.foreignkey(classes, on_delete=models.cascade)


class teacher(models.model):
    name = models.charfield(max_length=32)
    cls = models.foreignkey(classes, on_delete=models.cascade)


class administrator(models.model):
    username = models.charfield(max_length=32)
    password = models.charfield(max_length=32)

修改 urls.py

from django.contrib import admin
from django.urls import path

from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('login.html', views.login),
    path('', views.index),
]

在 templates 文件夹下创建两个 html 文件

# login.html
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>title</title>
</head>
<body>
<form action="login.html" method="post">
    {% csrf_token %}
    <div>
        <label for="user">用户名: </label>
        <input id="user" type="text" name="user">
    </div>
    <div>
        <label for="pwd">密码: </label>
        <input id="pwd" type="password" name="pwd">
    </div>
    <div>
        <label></label>
        <input type="submit" value="登录">
        <span style="color: red;">{{ msg }}</span>
    </div>
</form>

</body>
</html>

# 
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>title</title>
</head>
<body>
<h1> hello {{ username }} </h1>

</body>
</html>

添加 views.py

from django.shortcuts import render, redirect


# create your views here.
from app01 import models


def login(req):
    # models.administrator.objects.create(
    #     username='klvchen',
    #     password='klvchen'
    # )

    message = ""
    if req.method == "post":
        user = req.post.get('user')
        pwd = req.post.get('pwd')
        c = models.administrator.objects.filter(username=user, password=pwd).count()
        if c:
            rep = redirect('')
            rep.set_cookie('username', user)
            return rep
        else:
            message = "用户名或密码错误"
    return render(req, 'login.html', {'msg': message})


def index(req):
    username = req.cookies.get('username')
    if username:
        return render(req, '', {'username': username})
    else:
        return redirect('/login.html')

初始化数据库

python manage.py makemigrations
python manage.py migrate

启动

python manage.py runserver 8000

访问

输入错误的用户名或密码

输入正确的用户名和密码

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网