Urls.py
from django.conf.urls import url
from django.contrib import admin
from django.urls import path
from app import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^login/',views.login),
url(r'^index/',views.index),
]
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<form action="/login/" method="post">
<p>姓名<input type="text" name="user"></p>
<p>密码<input type="password" name="pwd"></p>
<p><input type="submit"></p>
</form>
</body>
</html>
view.py(SESSION)
from django.shortcuts import render, redirect
SESSION
def login(request):
# print("SESSION",request.session)
if request.method == "POST":
name = request.POST.get("user")
pwd = request.POST.get("pwd")
if name == "han" and pwd == "123": # 不要直接123
request.session["is_login"] = True
request.session["user"] = name
return redirect("/index/")
return render(request, "login.html")
def index(request):
if request.session.get("is_login", None):
name = request.session.get("user", None)
return render(request, "index.html", locals())
else:
return redirect("/login/")
view.py(COOKIES)
from django.shortcuts import render, redirect
import datetime
# Create your views here.
# COOKIES 可以自己单独工作,但是会把所有的信息存在客户端,不安全。
# SESSION 是将获得的数据存在数据库的一张表中,安全
def login(request):
if request.method == "POST":
name = request.POST.get("user")
pwd = request.POST.get("pwd")
if name == "han" and pwd == "123": # 不要直接123
ret = redirect("/index/")
# 创建一个键值对 max_age=10 登录完在十秒内可以继续进入index页面
ret.set_cookie("username", name,max_age=10)
# 在当你登录的时间的基础上加三天,就不能访问了
ret.set_cookie("username", name,expires=datetime.datetime.utcnow() + datetime.timedelta(days=3))
# 最好是写一样,然后写的时间是一样的,防止出现意外
return ret
return render(request, "login.html")
def index(request):
if request.COOKIES.get("username",None): # 获得这个键值对
name = request.COOKIES.get("username",None)
return render(request, "index.html", locals())
else:
return redirect("/login/")