• 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/

     

  • 相关阅读:
    根据对象的属性排序数组
    将多维数组的元素全部取出,组成一维数组的方法
    微信公众号报错 config:invalid signature
    改造业务代码
    微信公众号调用扫一扫
    JQuery :contains选择器,可做搜索功能,搜索包含关键字的dom
    【转】超全功能测试方法集锦——(通用黑盒功能:测试新人必收攻略)
    Oracle 查看表空间的大小及使用情况sql语句
    oracle数据库 参数open_cursors和session_cached_cursor详解!
    使用MITab操作MapInfo地图文件
  • 原文地址:https://www.cnblogs.com/aszeno/p/10500280.html
Copyright © 2020-2023  润新知