开发日志:

2020.10.19:https://blog.csdn.net/qq_36780295/article/details/109159944
(配置Django,创建一个简单的网页)

2020.10.20:https://blog.csdn.net/qq_36780295/article/details/109165967
(html学习整理,部署到局域网,使用Bootstrap)

2020.10.27:https://blog.csdn.net/qq_36780295/article/details/109195710
(简单的登录实现、在数据库中创建表格)

2020.11.2:https://blog.csdn.net/qq_36780295/article/details/109330941
(表查询实现注册和登录,数据库查找数据加载到前端显示,日常报错)

2020.11.3:https://blog.csdn.net/qq_36780295/article/details/109454195
(html中table表格使用,添加滑动条和固定表头,js实现下拉复选框)

2020.11.6:https://blog.csdn.net/qq_36780295/article/details/109484541
(input不显示提示信息,日历,datetime类型数据的显示,使用装饰器实现登录限制,文字下划线)

2020.11.11:https://blog.csdn.net/qq_36780295/article/details/109537494
(html中使用if.else,提交表单不改变下拉框已选值,数据库增删改查,外键,div边角变圆,数据库倒序查找及显示,日期选择组件参数赋值)

2020.11.12:https://blog.csdn.net/qq_36780295/article/details/109642293
(template中循环计数forloop.counter,数据库查找出的数据经过计算后和原数据或数组一起显示)

我做了哪些:

html前端+django后端

表结构:

用户表: 存储了用户的用户名、密码、姓名(姓名会加载到所有的选择负责人下拉框和选择参与人的下拉复选框中)。

项目表: 存储了项目的名称、负责人、参与人、创建日期时间(datetime系统自动获取)、项目周期、项目紧急等级、剩余天数(留存空字段,为了解决问题而留,下面写了)

进度提交表: 存储了项目名称、提交人(通过request.session标记获取)、提交时日期时间(datetime系统自动获取当前时间日期)、提交进度、备注。

功能页

1、登录页面、注册页面、退出登录功能:
(1)创建了用户表,注册时将用户的用户名、密码、姓名插入该表,并在登陆时与用户信息进行比对。
(2)request.session会话标记当前用户,以实现不同用户的一些不同操作和显示的参数,在所有的页面中记录登录用户的状态。
(3)结合request.session使用装饰器编写登录验证(不登陆无法访问某些网页,自动跳转到登陆页面进行登录)

2、管理员管理页面:
(1)除了链接创建项目,包含一些数据库的基本使用,根据列表上方的下拉框选择的创建日期(与创建日期datetime的date部分比较),下拉选择负责人,下拉选择项目名称,查看已提交的进度日志,点击查询,结果会按照进度表中的条件查找查找结果,然后显示在表格中。
(2)项目列表并显示紧急程度,由于只设定了三个紧急等级,所以对数据库查找的对象进行三次轮询,将每个等级的各个项目放在该紧急分级下,使用bootstrap中的list-group-item显示,并使用该组件对应的danger、success、warning三个状态对三个紧急程度等级的项目进行着色。
(3)天气预报通过divsrc链接的外部网页,不作说明。日历的代码通过前端与javascript结合实现,代码来自大佬,自己同样做了一些修改。
(4)最近更新中用作消息提醒,通过根据提交时间倒序读取进度提交表中的数据,以xxx(姓名)在xxx(日期时间)提交了xxx(项目名称)的进度为格式对管理员进度更新的提醒。
(5)项目详情中列出了所有的项目,即从项目表中查询出的所有信息,最后又加了一列剩余天数,通过查询出的项目周期加上项目创建时间,再减去当天日期得到,怎样把剩余天数显示出来我费了一番脑筋。
(6)显示的数据: 其中除了查询按钮查询进度日志,其他表格数据都是预加载。后端路由关联的函数中,在表单get和post之前就将数据库的数据加载,然后在表单载入时返回locals()来加载数据。

3、创建项目页面:
(1)创建了项目表,管理员创建项目以后会在项目表中插入一条记录,包含管理员选择的项目的一些信息:项目名称,下拉框选择项目负责人,选择输入项目周期(type=number),下拉复选框选择参与人(插入数据时自动过滤最后的逗号),自动获取系统当前的日期时间(以datetime存储到数据库)下拉框选择项目的紧急程度。(负责人和参与人下拉内容是读取的用户表中的姓名,与创建用户时所输入的姓名对应)

4、普通用户页面:
(1)有一部分与管理员页面类似,布局上做了一些修改,增加了进度提交区域,日历、天气、提交进度查询、项目详情等都类似,提交进度处,通过下拉框选择项目(项目表中已存在的项目),然后填写进度和备注,点击提交,然后将项目名称、提交人(request.session标记获取)、提交时间(自动获取当前时间)、提交进度、备注插入到进度提交表中。

遇到的问题:

(1)点击按钮,表单提交,导致页面刷新,之前下拉框和日期选择组件选择内容也被刷新。
(2)想要把计算后的数据和数据库中查询出来的内容一起显示,比如在数据库中查询出来的数据中增加一列剩余天数。一开始想用数组存储算好的天数,然后用循环来做,但是template里面不支持range,后来想用forloop.counter做数组下标,但是这样就变成了参数中加参数:{{create_items.{{forloop.counter}} }},很可惜,报错了。后来又想着用两个表拼接,一张表查数据库,一张表显示数组,但是当页面被缩放时就会显示不正常。想要模拟创建临时表(实际是想创建字典并添加键值对)进行外键的关联,实验了好多次的代码都没有成功。想要通过js来实现,由于查询的数据我也不知道有多少条,不太清楚怎样去实现就放弃了。
(3)datetime数据类型的相关处理计算(相减结果为datetime.timedelta型,而非int型)和正常显示(显示时需要转换格式)
(4)下拉复选框无法正常勾选和返回结果的解析。
(5)直接登入网页预加载数据正常显示,而登录跳转到该页面就不正常显示。

解决方案:
(1)在后端保存上一次下拉框选择结果,然后在提交表单后再将这个保存的结果提交给前端。这是笨办法,后面了解到可以用ajax来做。
(2)我在显示的表里面有创建了一个新的字段(假设为字段a1),字段中不显示任何内容,插入数据时也插入为空,然后将计算好的数值使用循环依次放到接收数据库查询内容的对象的a1属性内,然后在前端就可以和该对象的其他属性一样用了。
(3)datetime.timedelta型转int只需在后面加上.days,关于正常显示解决方法见上方开发日志,里面有说明。
(4)下拉复选框的代码来自大佬,由于去除勾选无法正确删去内容,自己在javascript中增加了定位函数,然后增删就正确了。关于解析,由于下拉复选框选择以后将勾选项相连,使用逗号相隔,所以在创建项目存储时我舍弃了最后一个逗号,在使用时通过逗号来定位,截取每一个选项放到数组中,以此来调用。
(5)在登陆页面也对数据库中查询的数据进行加载。

界面

登录注册和创建项目等由于做的比较丑,所以页面就没放了,该有的功能基本实现了,创建项目,提交日志,查看项目,查看日志,最近更新,项目分级等。由于刚刚学习Django不久,看了半天代码就直接上手,边做边学,所以还是比较吃力,最主要的还是自己太菜。开发过程学到非常多的东西,也克服了很多开发时遇到的问题。之后有时间会对界面进行美化和功能的增加,希望以后能自己做一个自己的网站吧,把我学会的东西都放上去。

管理员查看项目和创建项目页面:

普通用户查看项目和提交日志页面:

更新于2021-3-17:

学了一段时间,最近又把这个找了出来,对所有的界面进行了一个重写,加了一些特效,感觉看起来应该比原来好多了吧。

(1)登录页面:

(2)注册页面:

(3)负责人账号页面:

由于设置了background-attachment:fixed;background-repeat:no-repeat;,浏览网页时显示是正常的,但是用360浏览器截取时,下面半部分就有一大片空白,所以我直接把下半部分截到的有空白的去掉了。

(4)参与人项目进度提交界面:

(5)创建项目页面:


其他增加的一些特效截不出来,比如下雪特效,跟随鼠标的线的特效,不过这些代码网上已经很多了,就不做说明了。界面上该有的功能之前就都做好了,所以后端部分也没有去做任何的修改。

python django项目进度管理平台相关推荐

  1. 基于Python+django的网购平台购物商城-计算机毕业设计

    项目介绍 当下人们已经进去了网络时代,很多时候人们在买一些日用品的时候已经不再是传统的到超市进行购买和挑选的方式了,更多的人年人通过网络选购所需的商品,然后有物流配送到家,这是当前网络时代给人们很大的 ...

  2. python做流程管理平台_[译] Airflow: 一个工作流程管理平台

    Airflow: 一个工作流程管理平台 Airbnb 是一个快速增长的.数据启示型的公司.我们的数据团队和数据量都在快速地增长,同时我们所面临的挑战的复杂性也在同步增长.我们正在扩张的数据工程师.数据 ...

  3. python搭建可视化管理平台_搭建可视化数据平台 superset

    什么是 superset Superset 是 Airbnb 开源的大数据可视化平台,其特性包括: backend 支持几乎所有主流的数据库 支持复杂的权限控制和管理(OpenId, OAuth 等) ...

  4. python开发k8s管理平台_运维开发和k8s运维如何选择,请各位大神指导一下?

    Python 可以称为大数据全栈式开发语言.因为 Python 在云基础设施,DevOps,大数据处理等领域都是炙手可热的语言.只要会 Python,就可以实现一个完整的大数据处理平台.从最底层数据采 ...

  5. Python Django后台管理模板美化:使用django-simpleui模块

    直接pip安装即可: pip install django-simpleui 然后在setting.py中注册即可: INSTALLED_APPS = ['simpleui','django.cont ...

  6. Python Django 事务管理

  7. python Django在线可视化平台

    源码下载和功能展示: 链接:https://pan.baidu.com/s/1DfSvxZxhX1ursvRTRMvTzQ?pwd=bs7z 提取码:bs7z

  8. 产品研发项目进度管理软件工具有哪些推荐?整理10款最佳进度管理软件

    项目进度管理是确保项目按时完成的关键过程,使用合适的项目进度管理工具能确保帮助项目管理者实时了解和控制项目的进展情况,及时发现和解决问题,减少项目风险,提高项目效率和管理水平.这里将整理出国内外最受欢 ...

  9. 基于Python+Django的Kubernetes集群管理平台

    时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调度管理等方面都有其难以言喻的优 ...

最新文章

  1. 斯坦福大学机器学习课程资料-吴恩达老师主讲(2008版)
  2. SAP Spartacus popover Component css 的重用设计
  3. bootstrap样式异常_处理异常功能样式
  4. Excel 【小型成绩分析系统初稿】(功能及适应性有待完善)
  5. 2019.7.17刷题统计
  6. 剑指offer面试题[6]-重建二叉树
  7. python有趣的代码-趣味至上主义:这5个有趣的Python库带你花式编码
  8. callback用法 js vue_Vue前端开发——使用高德地图WebApi
  9. Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法...
  10. Aiiage Camp Day3 B Bipartite
  11. csv用excel打开后乱码?
  12. oracle rac 成本及架构,Oracle Extended RAC 架构实战
  13. 什么是大数据?大数据学习路线和就业方向
  14. 布尔矩阵与个性化推荐系统(原创)
  15. 三菱PLC内置以太网通讯
  16. chap4Web服务器-入门学习笔记
  17. python验证手机号是否注册学信网
  18. 【国内博客】国内常见的 博客 主页 (IT)
  19. Spring boot系统拦截处理异常调转404/500页面
  20. teamviewer出现无法连接伙伴问题

热门文章

  1. SQLserver2008 R2安装图解教程
  2. 一个能够快速把JSON数据格式化成漂亮网页的开源JavaScript库:angular-json-human
  3. Ubuntu16.04安装ROS操作系统
  4. 专利说明书的发明/实用新型内容与具体实施方式的差异
  5. Spring Boot LiveReload
  6. qt plugin metadata file does not exist解决方案
  7. FPS 游戏实现D3D透视
  8. 树莓派3配置局域网打印服务器惠普打印机HP1108
  9. English语法_to不定式
  10. 一个很不错的jsoneditor组件