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,以及视图层的两种响应方式 ...
随机推荐
- hbase 预分区与自动分区
我们知道,HBASE在创建表的时候,会自动为表分配一个Region,当一个Region过大达到默认的阈值时(默认10GB大小),HBase中该Region将会进行split,分裂为2个Region,以 ...
- windowsserver 2019系统安装教程
windowsserver2019和windowsserver2016一样也分两个版本标准版和数据中心版. 1.插入系统光盘 2.选择安装版本一般选择带桌面体验的,要不安装成功后没有桌面. 3.设置分 ...
- 解决consul覆盖注册
默认注册consul的服务id为服务名-端口号,相同的服务名和端口号注册会覆盖 解决方式: 1.自定义Consul注册Id import com.ecwid.consul.v1.ConsulClien ...
- video标签,在移动端获取第一帧作为展示
写在前面 video标签,获取第一帧作为poster.网上能找着很多案例,很容易实现,在pc端 效果明显.但是在移动端,这些实现方式并不能起作用.原因是 移动端 对video标签的限制,许多video ...
- Git操作记录
记录一些用过的操作 增加远程推送分支 git remote add orgin http://xxxxx.git 直接新建本地分支,将远程分支提取出来. git checkout -t origin/ ...
- Ubuntu安装Navicat 12 for MySQL
环境准备 要想运行Navicat,必须先安装Wine,这个可以使用下面的命令来安装Wine: ubuntu@ubuntu ~ $ sudo apt-get install wine-stable 安装 ...
- Ubuntu18.04LTS安装Nvidia显卡
笔者在为Ubuntu18.04LTS安装Nvidia显卡驱动之前,早就听说了一系列关于由于Nvidia驱动引起的疑难杂症.选择高质量的教程并保持足够的耐心,就能解 决这些问题.很重要的一点,不要怕把电 ...
- ABP实践(2)-ASP.NET Core 2.x版本EntityFrameworkCore(EF)使用mysql数据库
上一篇中EntityFrameworkCore默认使用的是微软的sql server,本篇改为mysql步骤如下: 1,在基础层xxx.EntityFrameworkCore依赖项添加Pomelo.E ...
- Windows下安装配置MongoDB
Windows下安装配置MongoDB 一,介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB ...
- Flutter路由导航Navigator
第一点:push使用 1.pushNamed——Navigator.of(context).pushNamed('routeName'); 此种方法只是简单的将我们需要进入的页面push到栈顶,以此来 ...