走在炽热的沙漠

导航

django建立管理系统之二----登录页

1.login.html内容:

<form action="/login.html" method="post">
用户名:<input type="text" name="user"><br>
密&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="password" name="pwd"> {{ msg }}<br>
<input type="submit" value="登录">
</form>
2.使用views 生成测试数据:
from django.shortcuts import render,redirect
from app01 import models

# Create your views here.

def Login(request):
# models.Administrator.objects.create(username='jack',password="jack")
message = ""
v = request.session
from django.contrib.sessions.backends.db import SessionStore
if request.method == "POST":
user = request.POST.get('user')
pwd = request.POST.get('pwd')
c = models.Administrator.objects.filter(username=user, password=pwd).count()
print("c:",c)
if c:
request.session['is_login'] = True
request.session['username'] = user
rep = redirect('/index.html')
return rep
else:
message = "用户名或密码错误"
obj = render(request, 'login.html', {'msg': message})
return obj

def auth(func):
def inner(request, *args, **kwargs):
is_login = request.session.get('is_login')
if is_login:
return func(request, *args, **kwargs)
else:
return redirect('/login.html')
return inner

@auth
def index(request):
current_user = request.session.get('username')
return render(request, 'index.html', {'username': current_user})


3.index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1> hello {{ username }}</h1>
</body>
</html>
4. urls.py
from django.contrib import admin
from django.urls import path,re_path
from app01 import views

urlpatterns = [
path('admin/', admin.site.urls),
re_path('login.html', views.Login),
re_path('index.html', views.index),
]
通过session 和装饰器实现了 登录验证。


posted on 2018-03-26 13:24  走在炽热的沙漠  阅读(170)  评论(0)    收藏  举报