Django+Layui+Mysql数据可视化系统项目(三)

Echarts图表的应用(联动和共享数据集)

解决数据可视化项目layui表格前后端处理增删改查的问题

一、前端(Layui)引用Table表格

使用静态数据展示,测试图表在前端的展示情况,调试布局情况
1.在body标签下引入echarts文件
可以引入Echarts最新版本号的js文件

<div class="layui-col-sm4" >   #定义布局大小(通过更改sm后的数字,数字越大布局越大)
        <div class="layui-card">   #定义卡片块
              <div class="layui-tab layui-tab-brief layadmin-latestData">
                <ul class="layui-tab-title">
                  <li class="layui-this">音乐榜热搜</li>
                  <li>今日热帖</li>
                </ul>
                <div class="layui-tab-content">
                  <div class="layui-tab-item layui-show">
                    <table id="musictop"></table>    #定义表格id,作为关键字链接script
                  </div>
                  <div class="layui-tab-item">
                    <table id="LAY-index-topCard"></table>
                  </div>
                </div>
              </div>
         </div>
</div>

2.在script标签下写入js文件

#引入layui.js文件,根据情况改成自己layui.js所在目录
  <script src="../../layuiadmin/layui/layui.js"></script>   
  <script type="text/javascript"  >
        layui.use(['form', 'layer', 'table', 'laytpl', 'laydate'], function () {
            var form = layui.form,
                layer = parent.layer === undefined ? layui.layer : top.layer,
                $ = layui.jquery,
                laytpl = layui.laytpl,
                table = layui.table,
                laydate = layui.laydate;

            //绑定时间选择器
            laydate.render({
                elem: '#startTime'

            });
            laydate.render({
                elem: '#endTime'
            });

            //渲染数据表格
           table.render({
                elem: '#musictop'    #表格id关键字
                , url: "/selectmusic"
                ,parseData: function(res){ //res 即为原始返回的数据
                    return {
                        "code": res.code, //解析接口状态
                         "count": res.count, //解析数据长度
                          "page":res.page,//当前页
                        "limit":res.limit,//当前页数据条数
                        "data": res.data,//解析数据列表
                        "pages":res.pages
                    };
                }
                   ,response: {
                    statusCode: 200 //规定成功的状态码,默认:0
                   }
                 , toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
                , page: true
                #定义表格id
                , id: 'table'
                , defaultToolbar: ['filter', 'exports', 'print',]
                , title: '微博热搜Top50'
                , height: '550'
                , cols:
                    [[
                    {#{ type: 'checkbox', fixed: 'left' }#}

                     { field: '排名', title: '排名', height:10,width: 75, align: 'center' , sort: true }
                    , {field: '标题', title: '标题', height:10,width: 200, align: 'center' , sort: true}
                    , {field: '热度', title: '热度', height:10,width: 100, align: 'center' , sort: true}
                    ]]
            });
		#表格搜索
		#绑定查询按钮id关键字
        $('#search').on('click', function () {   
        		#绑定查询字段id关键字
                var 排名 = $('#排名').val();    
                //执行重载
                if ( 排名== "") {
                    layer.msg("请先输入数据再查询")
                } else {
                	#绑定需要执行搜索表格重载的表格id
                    table.reload('table', {
                        #绑定搜索方法url
                        url: "/search/"
                        , method: "get"
                        , where: {
                            "排名": 排名,
                        }
                        , page: {
                            curr: 1 //重新从第 1 页开始
                        }
                    })
                }
            });
        })
</script>

4.查看前端运行情况
music
可以正常进行展示

二、后端

1.在url.py定义前端调用的url并绑定函数

urlpatterns = [
	path('selectmusic/',sql_data.selectmusic),
    path('search/',sql_data.search),
]

2.在函数中编写调用方法

查询功能
def selectmusic(request):
    nowPage = request.GET.get("page")
    limit = request.GET.get("limit")
    if limit == "":
        limit = 5
    data = connect.con("select 序号,排名,标题,热度,采集时间 from music_top  ORDER BY `采集时间` DESC ,`排名` limit 50;")

    paginator = Paginator(list(data), int(limit))

    if int(nowPage) >= int(paginator.num_pages):
        nowPage = paginator.num_pages
    try:
        page = paginator.page(nowPage)
    except:
        page = paginator.page(paginator.num_pages)

    data = {
        'data': list(page),
        'code': "200",
        'count': paginator.count,
        'page': page.number,
        'limit': page.__len__(),
        'pages': paginator.num_pages
    }
    return JsonResponse(data)
    
def search(request):
    r = request.GET.get("排名")
    nowPage = request.GET.get("page")
    limit = request.GET.get("limit")
    if limit == "":
        limit = 5
    if r != "":
        data = connect.con("select * from weibo_top where `排名`= %r ORDER BY `采集时间` DESC ,`排名` limit 50 "%r)
    paginator = Paginator(list(data), int(limit))
    if int(nowPage) >= int(paginator.num_pages):
        nowPage = paginator.num_pages
    try:
        page = paginator.page(nowPage)
    except:
        page = paginator.page(paginator.num_pages)
    data = {
        'data': list(page),
        'code': "200",
        'count': paginator.count,
        'page': page.number,
        'limit': page.__len__(),
        'pages': paginator.num_pages
    }
    return JsonResponse(data)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Django中使用LayUIMySQL来展示数据表格,你需要进行以下步骤: 1. 配置数据库:首先,确保你已经按照之前提到的步骤正确配置了Django项目中的MySQL数据库。 2. 创建数据模型:在Django的模型文件(`models.py`)中定义你的数据模型,然后运行迁移命令将模型映射到数据库中。例如,创建一个简单的学生模型: ```python from django.db import models class Student(models.Model): name = models.CharField(max_length=100) age = models.IntegerField() ``` 3. 创建视图函数:在视图文件(`views.py`)中创建处理数据展示的视图函数。该函数从数据库中获取数据,并将其传递给模板以渲染。例如: ```python from django.shortcuts import render from .models import Student def student_list(request): students = Student.objects.all() return render(request, 'student_list.html', {'students': students}) ``` 4. 创建模板文件:在模板文件中(`student_list.html`),使用LayUI的表格组件来展示学生数据。例如: ```html {% extends 'base.html' %} {% block content %} <table class="layui-table"> <thead> <tr> <th>姓名</th> <th>年龄</th> </tr> </thead> <tbody> {% for student in students %} <tr> <td>{{ student.name }}</td> <td>{{ student.age }}</td> </tr> {% endfor %} </tbody> </table> {% endblock %} ``` 5. 配置URL映射:在URL配置文件(`urls.py`)中,将URL映射到视图函数。例如: ```python from django.urls import path from .views import student_list urlpatterns = [ path('students/', student_list, name='student_list'), ] ``` 这样,当访问`http://localhost:8000/students/`时,你将会看到使用LayUI表格展示的学生数据。 请确保已经正确加载LayUI的CSS和JS文件,以及引入了必要的LayUI样式和组件。如果你还没有引入LayUI的文件,请按照之前提到的步骤将LayUI的文件下载并放置在Django项目的静态文件目录中。 希望以上步骤能帮助你在Django中使用LayUIMySQL来展示数据表格。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值