网站搭建-django-学习成绩管理-09-查询成绩之前端实现
微信公众号原文
【网站搭建-django-学习成绩管理-09-查询成绩之前端实现】系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
Django:2.1.4
Python:3.6.0
Part 1:目标
- 本系列介绍如何搭建一个网站,后端使用django框架
- 今天开始介绍一个单独的项目app,关于学生成绩管理的网站的搭建
- 主要功能包括:学习成绩查询,数据统计分析
- 涉及前端模块:Datatables、ECharts、JQuery
- 提前在数据库中录入一部分成绩信息,本文目标,选择特定条件查询
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/d69425aa6c684cb49b51a9c6f94e6ac6.png)
文章图片
2.png
查询动图
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/da65d56971bf4e14be96396f8d6cd16c.gif)
文章图片
1.gif
查询静图
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/f7d57c55a4e84c2c886ec1d8874d725b.jpg)
文章图片
1.png
Part 2:代码逻辑
- 前端
- 获取页面中输入的条件信息(JQuery)
- 将前端信息传入后端(Ajax)
- 后端查询的结果传入前端,显示出表格(Datatables)
- 后端
- 获取前端传递的信息(json.loads(request.body))
- 建立查询条件(Q)
- 查询获取结果(ORM)
- 将结果返回前端(JsonResponse(data))
- html部分:新增表格部分,另外在末尾处引入自编制js,请注意位置,如果放在head部分可能无法工作
班级
学生姓名
第几次模拟考
课程名称
成绩
代码截图
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/71ca1f1229004507aee65b7bf4e8b3e8.jpg)
文章图片
3.png
- 文中涉及到一些前端模块,需要在head部分引入。注意引入顺序,如果顺序出错,可能会无法工作,具体先后顺序,也是摸索出来,内在的原理暂且不了解,尴尬
成绩查询 - 锐客网 .table-center{
text-align: center;
vertical-align: middle;
white-space: wrap;
}
代码截图
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/042ce256839f4655abae85d408faf198.jpg)
文章图片
4.png
- js部分:通过Datatables模块实现表格的显示效果,只需要定义columns,即每列显示的字段,其余部分可以保持不变
- Datatables功能非常强大,本文实现了排序、着色效果
$('#btn-search').click(function(){
showTable();
})function showTable(){
var class_name = $("#class-name option:selected").text();
var student_name = $("#student-name option:selected").text();
var course_name = $("#course-name option:selected").text();
var exam_info = $("#exam-info option:selected").text();
var json_data = https://www.it610.com/article/{"class_name": class_name,
"student_name": student_name,
"course_name": course_name,
"exam_info": exam_info,
};
console.log(json_data);
$.ajax({
type:'POST',
url:'/sg/showNotes/',
headers:{"X-CSRFToken":$.cookie('csrftoken')},
data: JSON.stringify(json_data),
contentType: 'application/json;
charset=UTF-8',
dataType: 'json',
traditional: true,
async:true,
success: function(data) {
var str_lookup_result = JSON.stringify(data.lookup);
var array_lookup_result = JSON.parse(str_lookup_result);
//显示数据到表格
$("#table-query").DataTable({
"data": array_lookup_result,
"columns": [
{ data: "class_name",
className:'table-center',},
{ data: "student_name",
className:'table-center',},
{ data: "exam_info",
className:'table-center',},
{ data: "course_name",
className:'table-center-hide',
createdCell: function(nTd, sData, oData, iRow, iCol){
$(nTd).attr('title',sData);
},
},
{ data: "grades",
className:'table-center-hide',
createdCell: function(nTd, sData, oData, iRow, iCol){
if(sData < 60) {
$(nTd).css("background-color", "#FFB6C1");
};
},},
],
"scrollX": true,
"autoWidth": false,//自动宽度
"columnDefs": [
{
targets:0,
className:'select-checkbox',
},
],
"select":{
style:'os',
selector:'td:first-child',//点击该行第一个元素,选中这一行
},
"dom": "lBfrtip",//自定义显示项,并控制布局
"lengthMenu": [
[50, 6, 8, -1],
[4, 6, 8, "All"]
],//每页显示条数设置
"lengthChange": false,//是否允许用户自定义显示数量
"bPaginate": true, //翻页功能
"bFilter": true, //列筛序功能
"searching": true,//本地搜索
"ordering": true, //排序功能
"Info": true,//页脚信息
"destroy": true, //销毁已经存在的Datatables实例并替换新的选项
buttons: [
{ extend: 'excel', text: '另存为Excel' },
],
});
},
});
}
代码截图
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/558576f61e4444708c47fc998f2fab23.jpg)
文章图片
5.png
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/400acd6489974299873efa118ed9fa01.jpg)
文章图片
6.png
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/f35cd8391de545bc9aa3e180cf810af3.jpg)
文章图片
7.png
以上为本次的学习内容,下回见长按图片识别二维码,关注本公众号
Python 优雅 帅气
![网站搭建-django-学习成绩管理-09-查询成绩之前端实现](https://img.it610.com/image/info10/e63fbc12519641ba8b9c1d5547153415.jpg)
文章图片
12x0.8.jpg
推荐阅读
- 六步搭建ES6语法环境
- 【亲测好用】高逼格配色网站推荐
- 工具分享|5个有趣好玩的网站,拒绝无聊!
- 1040表格和W-2表格
- (1)redis集群原理及搭建与使用(1)
- 桁架搭建有什么价值()
- VM|VM ware 的 harbor 私有仓库搭建 (Ubuntu16.04)
- 和知网差不多的论文网站有哪些()
- PHP开发-Mac搭建ThinkPHP5.0
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置