Django视图

 

 

 

 

 

POST视图

 

 

CSRF:CSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用

 

 

 错误解析:

 

 

 

解决办法:

 

 

处理登陆请求:

 

 

 

登陆成功:

 

 

登陆失败:

 

 

指向event_manage.html

 

 

 

 

 

views.py

def login_action(request):
    if request.method == "POST":
        username = request.POST.get('username','')
        password = request.POST.get('password','')
        if username == 'admin' and password == "admin123":
            #return = HttpResponseRedirect('/event_manage/')
            #cookie的使用
            response = HttpResponseRedirect('/event_manage/')
            response.set_cookie('user',username,3600)#添加浏览器cookie
            return response
        else:
            return render(request,'index.html',{'error':'username or password error!'}) 
            #这里的error对应index.html中的error

#发布会管理系统
def event_manage(request):
    username = request.COOKIES.get('user','')#读取浏览器cookie
    #return render(request,"event_manage.html")
    return render(request,"event_manage.html",{"user":username})

  

event_manage.html

<!DOCTYPE html>
<html>
 <head>
    <title>Event Manage Page</title>
 </head>
 <div style="float:right;">
 <a> 嘿!{{ user }}>欢迎</a><hr/>
 </div>
 <body>
    <h1>Login Success!</h1>
 </body>
</html>

 

 

  

 

 

添加<div>标签来显示用户名

 

 

 

 

 Session的使用:

views.py

from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
# Create your views here.
def index(request):
    #return HttpResponse("Hello Django!")
    return render(request,"index.html")

#创建login_action视图函数
#登陆动作
def login_action(request):
    if request.method == "POST":
        username = request.POST.get('username','')
        password = request.POST.get('password','')
        if username == 'admin' and password == "admin123":
            #return = HttpResponseRedirect('/event_manage/')
            #cookie的使用
            response = HttpResponseRedirect('/event_manage/')
            #response.set_cookie('user',username,3600)#添加浏览器cookie

            #将session信息记录到浏览器
            request.session['user'] = username
            return response
        else:
            return render(request,'index.html',{'error':'username or password error!'}) 
            #这里的error对应index.html中的error

#发布会管理系统
def event_manage(request):
    #username = request.COOKIES.get('user','')#读取浏览器cookie

    username = request.session.get('user','') #读取浏览器session

    #return render(request,"event_manage.html")
    return render(request,"event_manage.html",{"user":username})

 

 再次刷新页面登陆,报错!!显示如下图方框:

这个错误和session的机制有关,既然要从web服务器端来记录用户的信息,那么一定要有存放用户session对应信息的地方才行。所有需要创建django_session表。不过django已经帮助准备好相应的表,只需要生成即可。

cmd.exe

 

通过“migrate”命令进行数据迁移,然后再配置数据库。(Django已经默认生成AQLite3数据库)。

在settings.py中查看SQLTite3的配置。

settings.py

 

 

 Django 认证系统

登陆Admin后台

创建admin后台的管理员账号

创建的超级管理账号/密码:admin/amin123456

 

 

先在cmd下进行  python3 manage.py runserver

 

然后登陆网页:127.0.0.1:8000/admin/

 

 

 

 

 

 

 

posted @ 2019-03-12 22:49  局长  阅读(151)  评论(0编辑  收藏  举报