django--博客项目--评论与用户登录

从这篇博客开始开始写(抄)新的功能,关于评论与用户登录。

评论是在点开的某篇博客里面评论的,所以我在博客里面加了这个玩意儿,

django--博客项目--评论与用户登录_第1张图片

就是下面那两个虚线框。先忽略已登录那几个字。

第一步要确定想法,我们要在未登录的时候显示一个表单给用户提交用户名和密码进行登录。在已登录的时候可以直接提交评论。

也就是我们要做的是对用户身份的验证。官方的文档是这样写的。

django--博客项目--评论与用户登录_第2张图片

authenticate和login都是django自带的,一个是用来认证用户是否登陆的,一个顾名思义就是用来登陆的。

第二步开始写代码。我们先看一下表单是长什么样的。

django--博客项目--评论与用户登录_第3张图片

关于if里面的那个东西,官方文档也有写,

django--博客项目--评论与用户登录_第4张图片这个is_authenticated的意思就是说如果

用户已经登陆了,那么会返回True,未登录则返回False,所以我们就用if语句来判断用户是否登录。

看完表单之后我们再看后台是怎么样的,先导入这个。

django--博客项目--评论与用户登录_第5张图片

关于这个提交表单的过程我们可以再复习一下。进入项目目录下的urls.py

django--博客项目--评论与用户登录_第6张图片看到最后一个path,其实我们在写了name属性后,除非我们是要直接在浏览器里面输入地址,否则我们只要看后面的name参数即可,表示这个网址的网址名是login,再看到表单。

表单的action里面写的是{% url 'login' %},意思是将数据送给网址名为login的页面去,然后把数据交给views.py里面的login处理。

讲完之后回到login函数,我们通过request.POST['username']和request.POST['password']得到从表单提交过来的用户名和密码,

然后进行验证,如果这个用户的用户名和密码都正确,那么就是用django自带的login函数进行登录,然后进行跳转到localhost:8000这个页面。

如果该用户不存在,这个返回错误页面。

我发现还遗漏了一个问题,就是这个判断语句里面的user是在哪里来的。我们看到博客页面内有这样一句

,然后我们在将这个context字典渲染到页面上,因此我们才可以使用user这个变量。

整个流程其实很简单。

再复习一下。

1.在前端页面首先利用is_authenticated判断用户是否为True,如果不是出现用户和密码框。

2.填写用户和密码,提交表单。

3.后台接收数据并进行判断提交的数据是否有误

4.无误则跳转到首页,有误则跳转到错误页面。

 

 

你可能感兴趣的:(django--博客项目--评论与用户登录)