Django博客系统开发06

用户登录

博客作为内容管理系统(CMS)的一种形式,也应当具有CMS的两个功能:内容管理、权限管理。在之前的几篇中,我们已经实现了内容管理。现在实现用户管理,即用户的登录和登出以及页面权限管理。

首先我们现在一共有以下views: index(), post_view(), post_create(), post_edit(), post_drafts(), post_publish(), post_delete()。在这些views中,出了index()和post_views()这两个属于内容展现的方法以外,其他方法应该都受到登录保护。所以,我们引入django自带的@login_required注解来处理这些方法。

首先在hzblog/views.py中引入login_required,并在需要登录验证的方法前加上注解。

然后,在hzsite/urls.py中引入登录登出的路由。注意,由于整个系统使用统一的登录登出路由,所以这里不是在app的urls.py中引入路由。

这里,我们还要修改一下hzsite/settings.py配置文件,将login/logout操作后的跳转页面定义到’/’目录,即首页。在settings.py中,加入两行:

引入路由之后,我们创建一个登录页面进行登录。创建hzblog/templates/registration/目录,在目录下创建login.html模板

最后,我们修改base.html模板,在头部加上登录登出的按钮

下面运行博客测试一下功能

未登录状态点开首页时,右上角显示登录按钮

1

点击登录或者使用需要登录的功能(修改、删除等),跳转到登录页面

2

输入用户信息登录后,右上角出现欢迎信息和只有登录后才可见的按钮

3

登录功能完美实现。

3 条评论

  • nosun 2017-05-26 回复

    看起来还不错~

  • nosun 2017-05-26 回复

    为了写一个博客,容易么?

    • Henry 2017-06-06 回复 作者

      哈哈哈,Django已经算是容易的了

发表评论

电子邮件地址不会被公开。 必填项已用*标注