一. 实际需求

之前这篇文章kettle-自动生成周报 是使用java开源ETL工具kettle实现,正常情况下是每天写工作完成情况到Excel表,每周五定时任务启动读取Excel日志写入数据库,再读取数据库内容按照公司周报模板生成文件,发邮件,上传到SVN,如果有天遗忘写工作进度,需要数据库插入一条记录.

当通过web页面提交数据,需要做到的功能有哪些?

需要考虑到实现插入新记录,删除记录(测试时候为为了让主键id从1开始 删除默认全部删除),更新某条记录的值,导出excel文件,也就是基本上的增删改查导出操作

二.项目操作

2.1 diango项目新增一个app python manage.py startapp weekreport,其次数据库建一个周报日志表,插入几条数据.

CREATE TABLE `weekreport` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',

`content` text COMMENT '周报内容',

`create_time` varchar(50) DEFAULT NULL COMMENT '完成时间',

`finished_status` varchar(50) DEFAULT NULL COMMENT '完成情况',

`cooperation` varchar(50) DEFAULT NULL COMMENT '协同部门/人',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.2 其次读取这个表的数据 渲染到页面(依旧没用ORM模型).

有些细节 比如 新增一行 按钮点击以后,需要根据数据库总记录数+1生成一个id,完成时间点击可以弹出当日时间,也可以手动修改时间.总而言之,数据表改变后都需要重载当前表格,导出文件需要导出到指定文件夹,生成的文件和原来kettle生成的一样.

web页面

除了新增一行没有调用接口,纯js生成新的一行记录,其余4个按钮点击时候通过jQuery的ajax请求后台接口.

2.3 前端页面(原谅我low的前端....)

周报

table {

border-spacing: 0;

border-collapse: collapse

}

th {

background-color: #79aec8;

border: 1px #609ab6 solid;

}

周报

序号工作内容完成时间完成情况协同部门/人

{% for data in week_reports_data %}

name="content1">

id='create_time1' name="create_time1">

id='finished_status1' name="finished_status1">

id='cooperation1' name="cooperation1">

{% endfor %}

提交保存

更新周报

删除全部

导出excel

function Addrow() {

var id = "

";

var content = "

";

var create_time = "

";

var finished_status = "

";

var cooperation = "

";

var str_html = id + content + create_time + finished_status + cooperation;

$("#oTable").append(str_html);

}

function get_now_time() {

function p(s) {

return s < 10 ? '0' + s : s;

}

var myDate = new Date();

var year = myDate.getFullYear();

var month = myDate.getMonth() + 1;

var date = myDate.getDate();

var now_time = year + '-' + p(month) + "-" + p(date);

var x = document.getElementById('create_time');

x.value = now_time;

}

$(document).ready(function () {

$("#commit").click(function () {

$.ajax({

type: 'POST',

url: "{% url 'weekreport:add_report' %} ",

data: {

id: $('#id').val(),

content: $('#content').val(),

create_time: $('#create_time').val(),

finished_status: $('#finished_status').val(),

cooperation: $('#cooperation').val(),

csrfmiddlewaretoken: '{{ csrf_token }}'

},

success: function (data) {

alert(data);

window.location.reload();

}

});

});

});

$(document).ready(function () {

$("#update").click(function () {

$.ajax({

type: 'POST',

url: "{% url 'weekreport:update_report' %} ",

data: {

id: $('#id1').val(),

content: $('#content1').val(),

create_time: $('#create_time1').val(),

finished_status: $('#finished_status1').val(),

cooperation: $('#cooperation1').val(),

csrfmiddlewaretoken: '{{ csrf_token }}'

},

success: function (data) {

alert(data);

window.location.reload();

}

});

});

});

$(document).ready(function () {

$("#delete").click(function () {

$.ajax({

type: 'get',

url: "{% url 'weekreport:delete_report' %} ",

success: function (data) {

alert(data);

window.location.reload();

}

});

});

});

$(document).ready(function () {

$("#export_excel").click(function () {

htmlobj = $.ajax({url: "{% url 'weekreport:export_all_excel' %}", async: false});

alert(htmlobj.responseText);

});

});

三.实现

数据库

导出excel文件

excel内容

python web报表_python django框架 渲染和ajax表单提交周报表相关推荐

  1. Django框架下的form表单提交数据(及文件)获取的方法

    目录 一.文件的提交和获取 1.html代码: 2.django代码: 二.文本的提交和获取 html: urls.py: ​编辑 views.py: ​编辑 结果: 一.文件的提交和获取 一般思路为 ...

  2. web 表单自定义字段_带有自定义服务器字段验证的AJAX表单提交

    web 表单自定义字段 Overview 总览 This article presents a method for validating form data in a PHP script usin ...

  3. SSM框架下实现form表单提交的方式

    实现form表单的提交有多种方式,这里我们主要讲两种常用的. 注:此Demo是在SSM框架下完成的,数据库采用MySQL,关于ssm整合的相关知识,这里不做过多赘述.主要展示表单提交方式,暂不考虑代码 ...

  4. python 录制web视频_Python django框架 web端视频加密的实例详解

    视频加密流程图: 后端获取保利威的视频播放授权token,提供接口api给前端 参考文档:http://dev.polyv.net/2019/videoproduct/v-api/v-api-play ...

  5. python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例

    本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接.分享给大家供大家参考,具体如下: url反向解析:根据url路由规则,动态生成对应的url链接 (防止硬编码). ...

  6. Django实现用户注册登录,表单提交后跳转网页(学习笔记)

    效果图如下: 1.新建项目和APP 使用命令提示符,进入想存放项目的目录: //新建项目coco django-admin startproject coco //新建app python manag ...

  7. Python Web前后端分离框架Django+Vue搭建

    Python Web前后端分离框架Django+Vue搭建 对前面所学知识的归纳整理,感兴趣的可以看看,欢迎指正. 一.前后端分离框架介绍 本项目基于 Python 的 Web 框架开发,采用前后端分 ...

  8. python web项目(django+Layui+mysql)

    python web项目(django--+Layui+mysql) 1.结果图 2目录结构 3.开干 4.总结 为了完成期末作业,做的一个学生成绩管理系统,采用django+Layui+mysql5 ...

  9. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

最新文章

  1. 一个小程序看流的读取
  2. Egret开发HTML5小游戏代码分享
  3. java金额格式化 .00_Java中金额的格式化###,###.00
  4. 大话存储系列21——存储系统内部IO 上
  5. 单变量求解C语言,二分法求解单变量非线性方程及其应用与实现.doc
  6. 数据结构-栈操作-用链表实现栈基本操作
  7. HP笔记本电脑如何设置屏幕亮度
  8. git创建本地ssh密匙
  9. 让样本不一样重要-A Dual Weighting Label Assignment Scheme for Object Detection
  10. 100天带你系统入门VR/AR游戏开发,成为5G时代的“头号玩家”
  11. 简单易懂的并查集算法以及并查集实战演练
  12. 【UE4 C++】实现发出伤害与接收伤害
  13. 【160】VS2022调试通过海康摄像头烟火识别SDK
  14. 哦耶OYE-0001 OpenWrt路由器折腾记(by quqi99)
  15. deb 中标麒麟_中标麒麟6安装google chrome浏览器遇到的问题及解决
  16. 最优化方法期末考试复习
  17. HCIE 面试 ----- 组播
  18. Mathorcup数学建模竞赛第五届-【妈妈杯】B题:朋友关系网络(附一等奖获奖论文和matlab代码)
  19. adb命令行安装和卸载apk包到真机
  20. 【Python | 杂代码】爬虫,从基础到进阶(一)

热门文章

  1. Go 存储基础 — 内存结构体怎么写入文件?
  2. 成立一年,openEuler为开源带来哪些改变
  3. Kubernetes 弃用 Docker !
  4. 解析 PowerJob 的序列化方案
  5. 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条
  6. 倒计时2天 | AI开发者大会完整议程揭秘!与百名大咖玩转人工智能
  7. 开玩笑呢?学习KMP算法能改变自我认知? | 原力计划
  8. Google Wave 的失败给现代实时协作办公的一个重大教训!
  9. 微信支付宝关闭三星Galaxy指纹支付;乐视网回应贾跃亭破产;Chrome 78发布|极客头条...
  10. 60 岁的人工智能,会是“人类历史最后的事件”吗?