zoukankan      html  css  js  c++  java
  • 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/

     

  • 相关阅读:
    STL之vector
    [洛谷P3942] 将军令
    [洛谷P2127] 序列排序
    [USACO07FEB]新牛棚Building A New Barn
    [洛谷P1120] 小木棍 [数据加强版]
    [洛谷P1438] 无聊的数列
    我的Emacs配置
    [CQOI2015]任务查询系统
    可持久化数组入门
    学习openstack(六)
  • 原文地址:https://www.cnblogs.com/aszeno/p/10500280.html
Copyright © 2011-2022 走看看