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/