https://download.csdn.net/download/qq_42536276/12749315
1、写个登录功能,修改之前的index.html
2、客户端通过http协议想服务器发送请求,最常用的是get和post
2.1 GET请求
在form表单增加属性method=“get”,输入账号登录后,账号信息就在url中显示
2.2 POST请求
同样上面代码,修改method为post,提交账号信息了点击登录后出现页面报错,“跨站请求伪造”,这里要用到Django的模板,使用“模板标签”添加CSRF令牌。在form表单中添加 {% csrf_token %}
注:
如果想忽略掉该检查项,可以在项目的setting.py中注释掉
3、处理登录请求
3.1可以通过form表单的action属性来指定提交的路径
修改index.html中from的属性
<form method="post" action="/login_action/">
按之前的工作了新增login_action的实现(在urls.py中增加路径,veiws.py中增加函数)
4、登录成功页
4.1之前只是简单的返回了登录成功的字符串,现在实现一个页面,在templates下新增event_manage.html文件
4.2在urls.py中新增urlpath('event_manage/',views.event_manage),
eviews.py中新增event_manage函数并修改登录成功的放回
上面用到了HttpResponseRedirect 重定向函数,返回到这个url,再读取urls.py再调用到views.py的具体函数,并返回
5、cookie的使用
继续修改sign/views.py文件
6、session的使用
6.1和cookie一样的修改views.py文件
6.2上述的session信息没有存储的地方,所以要创建django_session表
python manage.py migrate
通过migrate进行数据迁移,在尝试使用session登录界面正常了
7、认证系统
python manage.py createsuperuser
创建用户admin admin123456
7.1引用Django认证登录
使用authenticate()函数认证给出的用户名和密码。认证通过返回一个user对象,否则为None,然后使用login()函数接收HttpRequset对象和一个user对象进行登录。
7.2在发布会函数前加上锁,要求必须登录才能访问
from django.contrib.auth.decorators import login_required