Django数据驾驶舱

Django数据驾驶舱

      • 1.项目介绍
      • 2.项目结构
      • 3.库表结构
        • 3.1 appcsdn的models
        • 3.2 appssq的models
        • 3.3 appweather的models
        • 3.4 appweibo的models
      • 4.功能展示
      • 5.解决问题
        • 5.1 路由配置
        • 5.2 后端数据与前端echarts展示
        • 5.3 长图表丝滑滚动条
      • 6.遗留问题
      • 7.资源分享

1.项目介绍

这里介绍本人最近进行的数据展示项目,该项目由7个部分组成:CSDN统计、福彩信息、天气预报、股指信息、AI绘图、数据库监控。这些都是笔者感兴趣的数据,组建而成的模块。

项目的技术栈为:Django框架、jQuery前端、mysql数据库、python编码

github项目地址:见文末
在这里插入图片描述

2.项目结构

该项目,对于大屏中的板块,分别创建了4个应用:appcsdn、appssq、appweather、appweibo;

项目静态信息存放在static目录下;html网页资源存放在templates中;

controlCabin文件夹则包含:配置文件settings.py、路由文件urls.py等
在这里插入图片描述

3.库表结构

3.1 appcsdn的models

应用appcsdn中的models.py

from django.db import models
# cdsn类
class csdnInfo(models.Model):id = models.IntegerField(verbose_name='id主键', primary_key=True)csdn_reader = models.CharField(verbose_name='总访问量', max_length=32)csdn_arcticles = models.CharField(verbose_name='文章数', max_length=16)csdn_order = models.CharField(verbose_name='总排名', max_length=16)csdn_fans = models.CharField(verbose_name='粉丝数', max_length=16)csdn_tfans = models.CharField(verbose_name='铁粉数', max_length=16)csdn_good = models.CharField(verbose_name='获赞数', max_length=16)csdn_comment = models.CharField(verbose_name='评论数', max_length=16)csdn_collect = models.CharField(verbose_name='被收藏数', max_length=16)csdn_share = models.CharField(verbose_name='名片分享数', max_length=16)record_time = models.CharField(verbose_name='记录时间', max_length=32)class Meta:db_table = 'csdnInfo'  # 指明数据库表名verbose_name = 'csdn统计'  # 在admin站点中显示的名称verbose_name_plural = verbose_name  # 显示的复数名称get_latest_by = 'record_time'ordering = ['record_time']  # 按彩票期数降序排列,-表示降序
3.2 appssq的models

应用appssq中的models.py

from django.db import models
# ssq的类
class ssqInfo(models.Model):id = models.IntegerField(verbose_name='id主键', primary_key=True)ssq_code = models.CharField(verbose_name='彩票期数', max_length=16)ssq_date = models.CharField(verbose_name='出奖日期', max_length=32)ssq_red = models.CharField(verbose_name='红球号码', max_length=32)ssq_blue = models.CharField(verbose_name='蓝球号码', max_length=6)ssq_poolmoney = models.CharField(verbose_name='奖池金额', max_length=16)ssq_content = models.CharField(verbose_name='中奖分布信息', max_length=255)class Meta:db_table = 'ssqInfo'  # 指明数据库表名verbose_name = '福彩信息'  # 在admin站点中显示的名称verbose_name_plural = verbose_name  # 显示的复数名称ordering = ['-ssq_code']  # 按彩票期数降序排列,-表示降序
3.3 appweather的models

应用appweather中的models.py

from django.db import models
# weather类
class weatherInfo(models.Model):id = models.IntegerField(verbose_name='id主键', primary_key=True)nation = models.CharField(verbose_name='国家', max_length=32)province = models.CharField(verbose_name='省份', max_length=32)city_name = models.CharField(verbose_name='城市', max_length=32)city_id = models.CharField(verbose_name='城市id', max_length=32)today_dayText = models.CharField(verbose_name='天气状况', max_length=32)today_heat = models.CharField(verbose_name='温度', max_length=32)today_wind = models.CharField(verbose_name='风向风力', max_length=32)weather_info = models.CharField(verbose_name='7日天气', max_length=3000)record_date = models.CharField(verbose_name='记录日期', max_length=32)record_time = models.CharField(verbose_name='记录时间', max_length=32)class Meta:db_table = 'weatherInfo'  # 指明数据库表名verbose_name = '天气预报信息'  # 在admin站点中显示的名称verbose_name_plural = verbose_name  # 显示的复数名称ordering = ['province']  # 按彩票期数降序排列,-表示降序
3.4 appweibo的models

应用appweibo中的models.py

from django.db import models
# weibo类
class weiboInfo(models.Model):id = models.IntegerField(verbose_name='id主键', primary_key=True)weibo_record_time = models.CharField(verbose_name='记录时间', max_length=32)weibo_rank = models.CharField(verbose_name='热搜排名', max_length=32)weibo_label = models.CharField(verbose_name='标签', max_length=32)weibo_word = models.CharField(verbose_name='热搜词汇', max_length=255)weibo_num = models.CharField(verbose_name='热搜量', max_length=32)weibo_category = models.CharField(verbose_name='分类', max_length=32)class Meta:db_table = 'weiboInfo'  # 指明数据库表名verbose_name = '微博热搜统计'  # 在admin站点中显示的名称verbose_name_plural = verbose_name  # 显示的复数名称get_latest_by = 'record_time'ordering = ['weibo_rank']  # 按彩票期数降序排列,-表示降序

以上,应用中的models定义好后,可以在命令行运行下面的语句在如mysql等数据库中建表

首次创建Django内置表结构

python manage.py migrate 

让 Django知道我们自定义模型有一些变更,并根据我们自定义app的模型生成创建数据表的脚本

python manage.py makemigrations apphot

通过命令创建apphot模型对应的数据库表 ,命令最后是应用名称

python manage.py makemigrations appcsdn

4.功能展示

在这里插入图片描述

5.解决问题

5.1 路由配置

考虑到项目比较简单,没有配置二级路由,这里路由配置主要是数据接口的获取使用

from django.contrib import admin
from django.urls import path
from appssq.views import view_data_ssq,view_web_ssq,view_datacode_url,view_datacode,view_datacontent,view_datacontent_url,view_stock,view_stock_url
from appcsdn.views import view_csdn_url,view_csdn
from appweather.views import view_data_weather,view_weather
from appweibo.views import view_weibo_url,view_weibourlpatterns = [path('admin/', admin.site.urls),# ssqpath('index.html',view_data_ssq),    # 福彩信息刷新测试1path('appssq/datacode_url',view_datacode_url),    # 福彩信息刷新测试2path('appssq/datacode',view_datacode),    # 福彩信息刷新测试2path('appssq/datacontent_url', view_datacontent_url),  # 福彩信息刷新测试3path('appssq/datacontent', view_datacontent),  # 福彩信息刷新测试3path('appssq/web_ssq',view_web_ssq),    # 福彩重定向# 股票指数path('appssq/stock', view_stock),  # 股票刷新测试1path('appssq/stock_url', view_stock_url),  # 股票刷新测试1# csdnpath('appcsdn/csdn_url',view_csdn_url),    # csdn统计刷新测试1path('appcsdn/csdn',view_csdn),    # csdn统计刷新测试1# weatherpath('appweather/date_weather', view_data_weather),  # weather天气信息1path('appweather/weather',view_weather),  # weather天气信息# weibopath('appweibo/weibo_url', view_weibo_url),  # weibor天气信息1path('appweibo/weibo', view_weibo),  # weibo天气信息
]

在这里插入图片描述

5.2 后端数据与前端echarts展示

在静态资源的map.js中,使用了ajax进行后端数据调用,在调整参数async:false后,前端数据显示正常。

//需要执行的内容:获取ssq_code
var ssq_code = ''; // 全局变量
get_ssq_code = function () {
$.ajax({type: "get",url: "http://127.0.0.1:8000/appssq/datacode_url",async:false,  //值为true表示异步,只为false表示同步success: function (real_code) {ssq_code = '->'+real_code+'期<-'; //将局部变量赋值给全局变量}})
}
get_ssq_code();

在这里插入图片描述

5.3 长图表丝滑滚动条

在天气预报模块,应用到了滚动条

<div class="boxnav" style="height: 200px; overflow: auto; padding: 0 10px;"><table class="table1" width="100%" border="0" cellspacing="0" cellpadding="0" ><thead style="background: #034481;position: relative;z-index: 2;"><tr><th>城市名称</th><th>天气状况</th><th>温度</th><th>风力</th></tr></thead><tbody style="position: relative;"><tr> <td>城市名称</td><td><span class='text-w'>天气状况</span></td> <td><span class='text-b'>温度</span></td> <td><div class='text-d'>风力</div></td></tr></tbody></table>
</div>

效果:上下无缝滚动、滚动条隐藏、鼠标进入停止离开恢复

var divTop = 0;
// 天气预报 tr内容表格填充
get_weather = function(){$.ajax({type: "get",url: "http://127.0.0.1:8000/appweather/date_weather",async:false,  //值为true表示异步,只为false表示同步success: function (weather_list) {var td_str = ''for (var one in weather_list){var province =  weather_list[one]['province'];var city_name = weather_list[one]['city_name'];var today_dayText = weather_list[one]['today_dayText'];var today_heat = weather_list[one]['today_heat'];var today_wind = weather_list[one]['today_wind'];td_str += "<tr> <td>"+province+" "+city_name+"</td> <td><span class='text-w'>"+today_dayText+"</span></td> <td><span class='text-b'>"+today_heat+"</span></td> <td><div class='text-d'>"+today_wind+"</div></td></tr>";}// 完全拼接后,再添加标签内$("tbody").append(td_str);initScroll(weather_list)}})
}
get_weather();// 天气预报tbale1-无缝丝滑滚动function initScroll(list) {let tbody = $('.table1 tbody')let len = list.lengthtbody.css('top', '0')let speed = 50let trH = tbody.find('tr').outerHeight()let marquee = function () {if (divTop <= -trH * len) {divTop = 0} else {divTop -= 1}tbody.css('top', divTop + 'px')}if (window.deptCatalogTopTimer) {clearInterval(window.deptCatalogTopTimer)}window.deptCatalogTopTimer = setInterval(marquee, speed)$(".table1").hover(function(){if (window.deptCatalogTopTimer) {clearInterval(window.deptCatalogTopTimer)}}, function(){window.deptCatalogTopTimer = setInterval(marquee, speed)})
}

6.遗留问题

由于时间仓促,有些模块的细节没有配置接口,写了固定数据,比如csdn板块的折线图、福彩板块的折线图、词云图、AI图片、数据库监控,不过不影响使用。

7.资源分享

github项目地址:https://github.com/phillip927/controlCabin

下载项目资源后,可以对照着我的这篇文章,进行运行配置:

Django项目开发操作实例_django项目开发实战-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云发送验证码流程

目录 1. 阿里云短信服务简介 2. 阿里云验证码发送流程 2.1 申请阿里云短信服务 2.2 短信模板及阿里云秘钥 1.开发者可以在自己的应用程序中集成短信发送功能。绑定发起测试的手机号&#xff0c;需要绑定的手机号才能成功发送验证码&#xff0c;其他的用户手机号发送的验…

如何在 Ubuntu 12.04 VPS 上安装和配置基本的 LDAP 服务器

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 LDAP&#xff08;轻量级目录访问协议&#xff09;是一种通过文件和目录层次结构管理相关信息的协议&#xff0c;它可以从集中位置管…

【4003】基于springboot实现的线上阅读系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

ARM裸机:基础了解

ARM的几种版本号 ARM内核版本号 ARMv7 ARM SoC版本号 Cortex-A8 芯片型号 S5PV210 ARM型号的发展历程 m microcontroller微控制器 就是单片机 a application应用级处理器 就是手机、平板、电脑的CPU r realtime实时处理器 响应速度快,主要用在工业、航天等领域 soc 、cpu、…

ubutu 18.04源码编译安装freeswitch 1.10.7支持视频通话——筑梦之路

软件版本说明 ubuntu版本18.04&#xff1a;https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.iso freeswitch 版本1.10.7&#xff1a;https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gz spandsp包&#xff1a;https:…

VB计算圆柱体积和表面积

已知圆半径和圆柱的高&#xff0c;计算圆柱体积和表面积。 Public Class Form1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickConst PI 3.14159Dim r As Integer, h As IntegerDim t As Single, s As Singler Val(TextBox1.Text)h V…

免杀笔记 ---> C语言

这次的更新可能有点慢&#xff0c;因为这段时间也比较忙&#xff0c;加上C语言还得和汇编结合&#xff0c;导致小编一个知识点总是得反复揣摩&#xff08;太菜了&#xff09;&#xff0c;所以免杀的更新篇幅长度可能会达到两个月和三个月&#xff0c;但是小编能保证&#xff0c…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-24深度卷积神经网络AlexNet

24深度卷积神经网络AlexNet import torch from torch import nn import liliPytorch as lp import liliPytorch as lp import matplotlib.pyplot as pltdropout1 0.5 #Alexnet架构 net nn.Sequential(nn.Conv2d(1, 96, kernel_size11, stride4, padding1),nn.ReLU(),nn.MaxPo…

智慧校园综合管理系统的优点有哪些

在当今这个信息化飞速发展的时代&#xff0c;智慧校园综合管理系统正逐步成为教育领域的一股革新力量&#xff0c;它悄然改变着我们对传统校园管理的认知。这套系统如同一个无形的桥梁&#xff0c;将先进的信息技术与学校的日常运作紧密相连&#xff0c;展现出多维度的优势。 …

训练营第四十五天 | 435. 无重叠区间763.划分字母区间56. 合并区间738.单调递增的数字968.监控二叉树

435. 无重叠区间 力扣题目链接(opens new window) 给定一个区间的集合&#xff0c;找到需要移除区间的最小数量&#xff0c;使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”&#xff0c;但没有相互重叠。 示例 1…

6/22 第四周 python操作word

学习到了word有四个段落&#xff0c;都可以通过python来操作。 并且课程的体系&#xff0c;只是一个启蒙&#xff0c;需要在公司的项目中熟悉&#xff0c;从而具备专项测试的能力。 后续每天的学习笔记也需要侧重于理解的部分。

【CPP】归并排序

目录 1.归并排序简介代码分析归并的非递归形式 1.归并排序 归并排序&#xff08;MERGE-SORT&#xff09; 是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。 将已有序的子序列合并&#xff0c;得到…

NXP实战笔记(十四):32K3xx基于RTD-SDK在S32DS实现HSE的安装。

目录 1、概述 1.1、什么是HSE&#xff1f; 1.2、如何实现HSE的OTA功能 1.3、S32K3放置HSE的地址 2、通过调试器安装HSE 3、通过IVT方式安装HSE 4、坑点慎重踩 4.1、优化等级 4.2、Flash放RAM 4.3、C40_Ip配置更改 4.4、程序烧录 5、测试结果 6、代码链接 1、概述 首…

“论SOA在企业集成架构设计中的应用”必过模板,软考高级,系统架构设计师论文

论文真题 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA)的新型企业应用集成技术,强调将企业和组织内部的资源和业务功能暴露为服务,实现…

vue-json-viewer组件 copyable失效,页面并不现实copy按钮

<json-viewer :value"props.row.param_detail.query" :expand-depth"10" copyable> </json-viewer> 官方文档中&#xff0c;说明&#xff0c;只要在json-viewer中加入 copyable属性&#xff0c;即可实现copy功能&#xff0c;如下图&#xff1…

yolov8环境搭建+训练自己数据集

一、yolov8环境搭建 1. 安装miniconda环境 地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda 选择Python3.8版本 最好安装在C盘 勾选自动添加环境变量 ***以下操作安装过程中关闭代理软件 *** 2. 创建虚拟环境 conda create -n yolov8 python3…

vue自建h5应用,接入企业微信JDK(WECOM-JSSDK),实现跳转添加好友功能

一、项目场景&#xff1a; 1、使用vue开发了一套h5页面的项目 2、这个h5链接是在企业微信里某个地方打开的 3、打开页面的时候有一个好友列表&#xff0c;点击好友列表某一条复制手机号跳转到企业微信添加好友页面 二、实现的效果图 博客只允许上传gif图&#xff0c;所以我只…

浙江工商大学24计算机考研数据,好几个专业都接收调剂,计专复试线284分!

浙江工商大学&#xff08;Zhejiang Gongshang University&#xff09;&#xff0c;简称“浙商大”&#xff08;ZJSU&#xff09;&#xff0c;坐落于浙江省杭州市&#xff0c;是中华人民共和国教育部、中华人民共和国商务部和浙江省人民政府共建的浙江省重点建设高校&#xff0c…

C#调用OpenCvSharp计算并显示带掩膜的图像直方图

之前的文章简要测试了调用OpenCvSharp的Cv2.CalcHist函数计算直方图的用法&#xff0c;不过使用过程中参数mask的值始终为null&#xff0c;也就是计算的整幅图像的直方图&#xff0c;如果mask不为空&#xff0c;则可以计算图像指定区域的直方图&#xff0c;本文学习掩膜的创建方…

css grid实现九宫格布局

常见的九宫格布局可以使用flex布局实现&#xff0c;但是flex布局有个致命的缺陷&#xff0c;比如3行3列的布局&#xff0c;当第不足3个元素的时候&#xff0c;元素依然是平局平铺的&#xff0c;这样就不满足九宫格的效果&#xff0c;这种情况&#xff0c;使用grid布局可以轻松搞…