django——个人博客之分页/筛选功能
在完成了注册、登录后就应该显示主页,在主页中有各种功能的按钮,用户点击后进入后台管理,不同角色的用户根据权限不同显示的页面是不相同的,在个人博客页面会显示自己发布的文章,以及自己的保障记录,在进入后台管理后可以对这些文章进行增删改查,对保障单进行查看,下面分成两个方面来进行分析。
1、个人博客的显示
在进入博客页面后需要对个人的文章进行增删改查,这里主要针对数据库的操作,再查出文章后如果文章列表过多的话则需要对对其进行分页,以及不同关键字的查询功能。数据库的增删改查主要是基于django的modles操作来完成的,只要熟悉相应的models操作即可完成,下面分别是分类筛选功能的展示:
(1)、筛选功能:
其主要是在前端html总做文章,下面是相应的代码:
<div class="condition">
<div class="conditon_title">
<i class="fa fa-search" aria-hidden="true">搜索条件</i>
</div>
<div class="condition-content">
<div>
{% if type_id == 0 %}
<a class="btn btn-small active" href="artical-{{0}}-{{ blog_id }}.html">全部</a>
{% else %}
<a class="btn btn-small" href="artical-{{0}}-{{ blog_id }}.html">全部</a>
{% endif %} {% for row in type_list %}
{% if type_id == row.0 %}
<a class="btn btn-small active" href="artical-{{ row.0 }}-{{ blog_id }}.html">{{ row.1}}</a>
{% else %}
<a class="btn btn-small " href="artical-{{ row.0 }}-{{ blog_id }}.html">{{ row.1}}</a>
{% endif %}
{% endfor %}
</div>
<div class="catagory">
{% if blog_id == 0 %}
<a class="btn btn-small active" href="artical-{{type_id}}-{{0}}.html">全部</a>
{% else %}
<a class="btn btn-small" href="artical-{{type_id}}-{{0}}.html">全部</a>
{% endif %}
{% for row in catagory_list %}
{% if blog_id == row.nid %}
<a class="btn btn-small active" href="artical-{{type_id}}-{{row.nid}}.html">{{ row.title}}</a>
{% else %}
<a class="btn btn-small" href="artical-{{type_id}}-{{row.nid}}.html">{{ row.title}}</a>
{% endif %}
{% endfor %}
</div>
<div class="add"> </div>
</div>
</div> 而后台只是根据上面所对应的url对数据进行相应的增删改查,完成后放到前端进行显示即可,这点注意进行理解。 (2)、页码的显示 对取出来的东西进行分页时,参照已经封装好的page函数进行编写,最后放到页面进行显示即可。 2、保障系统的管理; 报障系统需要与权限挂钩,普通用户、老板以及工程师之间所显示的菜单都是有区别的
普通用户:只能填写故障的内容,然后查看故障处理的状态,以及详细的解决方案。
工程师:可以查看故障的具体情况,可以进行抢单,抢单完成后对订单进行编辑,并且还有自己的问题库,可以查看前期自己解决过的所有问题,
以大大增加解决问题的效率。
老板:可以看到所有工程师的工作情况,并显示所有工程师不同时间段处理订单的量。 在写的过程中需要注意下面几个问题:
在进行url跳转后需要对登录情况进行验证,防止其他人伪造url进行登陆后的破坏
在抢单完成后需要及时对问题的状态进行更改
接单的时候需要同时查看订单的状态以防止在抢订单过程中别人抢走,造成重复抢单的情况。
页面上对报障的功能根据状态的不同而有不同的显示,需要在前端对状态进行判断,根据不同的状态显示不同菜单。 个人博客总比较主要的几个问题都已进行记录,下篇文章将对在blog开发过程中存在的知识点的不足进行总结。
django——个人博客之分页/筛选功能的更多相关文章
- Django 系列博客(十六)
Django 系列博客(十六) 前言 本篇博客介绍 Django 的 forms 组件. 基本属性介绍 创建 forms 类时,主要涉及到字段和插件,字段用于对用户请求数据的验证,插件用于自动生成 h ...
- Django 系列博客(十)
Django 系列博客(十) 前言 本篇博客介绍在 Django 中如何对数据库进行增删查改,主要为对单表进行操作. ORM简介 查询数据层次图解:如果操作 mysql,ORM 是在 pymysql ...
- 纯django开发博客系统
企业级教程:纯django开发博客系统 1.视频教程 https://www.duanshuilu.com/ 2.教程文档 https://www.duanshuilu.com/ 0.课程简介1.简价 ...
- Django搭建博客网站(四)
Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...
- Django搭建博客网站(三)
Django搭建博客网站(三) 第三篇主要记录view层的逻辑和template. Django搭建博客网站(一) Django搭建博客网站(二) 结构 网站结构决定我要实现什么view. 我主要要用 ...
- Django练习——博客系统小试
在上一篇博客Todolist的基础上(http://blog.csdn.net/hcx25909/article/details/24251427),本周继续进行实践,这次我要搭建一个简单的博客系统. ...
- Django 系列博客(十三)
Django 系列博客(十三) 前言 本篇博客介绍 Django 中的常用字段和参数. ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True.当 model ...
- Django 系列博客(十二)
Django 系列博客(十二) 前言 本篇博客继续介绍 Django 中的查询,分别为聚合查询和分组查询,以及 F 和 Q 查询. 聚合查询 语法:aggregate(*args, **kwargs) ...
- Django 系列博客(七)
Django 系列博客(七) 前言 本篇博客介绍 Django 中的视图层中的相关参数,HttpRequest 对象.HttpResponse 对象.JsonResponse,以及视图层的两种响应方式 ...
随机推荐
- mssql sqlserver 自动备份存储过程的方法分享
转自:http://www.maomao365.com/?p=7847摘要: 为了更好的记录数据库中存储过程脚本的变化情况,下文采用数据库触发器来自动记载每次“存储过程”的变化(新增或修改),如下所示 ...
- .net解析csv(C#导表工具)
前言 解析Excel有知名的NPOI库,(Java语言是POI),但是NPOI是不支持解析csv的. csv本质上也是文本文件,可以进行差异对比,更利于解决冲突. 本文对解析csv的几个.net的开源 ...
- php类注释生成接口文档
参考地址:https://github.com/itxq/api-doc-php
- 北京大学冯哲清北学堂讲课day1
贪心方案: 答案是第三个策略 二分的一个重点是有顺序性,只有满足这个件才可以二分判断区间,否则你得自己构造顺序. 洛谷跳石头同题: 首先,我们要最小化最大跳远距离 代码如下(此题) #include& ...
- Unity TimeLine 资源结构
---恢复内容开始--- 先看一个TimeLine,如图 再来看看在Inspector中的PlayableDirector 其他参数字面意思很清楚了不再赘述,着重讲一下一个TimeLine绑定的资源. ...
- webstorm配置svn详解
1. 打开webstorm-> file -> setting -> plguins 输入svn如果没有SVNToolBox就在下面的列表中安装SVNToolBox插件即可. 2.c ...
- Excel阅读模式/聚光灯开发技术序列作品之三 高级自定义任务窗格开发原理简述—— 隐鹤
Excel阅读模式/聚光灯开发技术序列作品之三 高级自定义任务窗格开发原理简述—— 隐鹤 1. 引言 Excel任务窗格是一个可以用来存放各种常用命令的侧边窗口(准确的说是一个可以停靠在类名为x ...
- 数据转换失败 java.math.BigDecimal cannot be cast to java.lang.String
从接口获取到数据,在转换的时候出现错误:java.math.BigDecimal cannot be cast to java.lang.String 因为一开始用的是使用关键字进行强制转换,后来发现 ...
- Centos6.5 pppoe-server
[root@localhost network-scripts]# rpm -q rp-pppoepackage rp-pppoe is not installed ----------------- ...
- 封装LocalStorage.js
之前使用vue开发的项目频繁使用到localStorage,封装了一下 localStorage.js文件代码如下: let obj = {}; /** * putLocalStorage 把数据放到 ...