【记录】【django视图】

https://download.****.net/download/qq_42536276/12749315

1、写个登录功能,修改之前的index.html

【记录】【django视图】

 

2、客户端通过http协议想服务器发送请求,最常用的是get和post

2.1 GET请求

在form表单增加属性method=“get”,输入账号登录后,账号信息就在url中显示

【记录】【django视图】

2.2 POST请求

同样上面代码,修改method为post,提交账号信息了点击登录后出现页面报错,“跨站请求伪造”,这里要用到Django的模板,使用“模板标签”添加CSRF令牌。在form表单中添加     {% csrf_token %}

【记录】【django视图】

 

【记录】【django视图】

注:

如果想忽略掉该检查项,可以在项目的setting.py中注释掉

【记录】【django视图】

3、处理登录请求

3.1可以通过form表单的action属性来指定提交的路径

修改index.html中from的属性

<form method="post" action="/login_action/">

按之前的工作了新增login_action的实现(在urls.py中增加路径,veiws.py中增加函数)

【记录】【django视图】

【记录】【django视图】

 

【记录】【django视图】

4、登录成功页

4.1之前只是简单的返回了登录成功的字符串,现在实现一个页面,在templates下新增event_manage.html文件

【记录】【django视图】

4.2在urls.py中新增urlpath('event_manage/',views.event_manage),

eviews.py中新增event_manage函数并修改登录成功的放回

【记录】【django视图】

上面用到了HttpResponseRedirect 重定向函数,返回到这个url,再读取urls.py再调用到views.py的具体函数,并返回

5、cookie的使用

继续修改sign/views.py文件

【记录】【django视图】

 

【记录】【django视图】

 

6、session的使用

6.1和cookie一样的修改views.py文件

【记录】【django视图】

6.2上述的session信息没有存储的地方,所以要创建django_session表

python manage.py migrate  

通过migrate进行数据迁移,在尝试使用session登录界面正常了

7、认证系统

python manage.py createsuperuser

创建用户admin  admin123456   

7.1引用Django认证登录

【记录】【django视图】

使用authenticate()函数认证给出的用户名和密码。认证通过返回一个user对象,否则为None,然后使用login()函数接收HttpRequset对象和一个user对象进行登录。

7.2在发布会函数前加上锁,要求必须登录才能访问

from django.contrib.auth.decorators import login_required

【记录】【django视图】