- 博客(9)
- 收藏
- 关注
原创 数据库表动态列的设计
问题描述曾经开发过一个物联网数据展示平台,软件整体架构如下图:平台数据采集器通过mqtt协议对接,收到采集器数据后存入数据库。采集器采集的数据项不是固定的,以纺织行业举例,染缸需要采集用电量、用水量和蒸汽用量,而定型机只需要采集电量和天然气用量,为了让平台更通用,字段需要动态可配置,所以数据表的设计需要考虑动态列。方案描述方案一:动态修改数据表结构设计思路考虑使用三张表,设备表,设备数据项表,数据表,结构如下:设备表字段名说明id主键meter_name设
2021-10-26 14:29:26 3365
原创 django orm使用笔记
查询返回指定字段返回orm对象Student.objects.filter()返回字典Student.objects.filter().values("place")返回元祖Student.objects.filter().values_list("place")去重Student.objects.filter().values("place").distinct属性查询Student.objects.filter(place="常州")excludeStudent.obj
2021-10-26 09:44:15 217
原创 django模板语言使用笔记
基本使用编写模板runoob.html<h1>{{ hello }}</h1>使用模板from django.shortcuts import render def runoob(request): context = {} context['hello'] = 'Hello World!' return render(request, 'runoob.html', context)使用参数变量{{ name }}
2021-10-26 09:43:12 177
原创 python re模块入门
简介re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,正则表达式是所有语言通用的。pattern在介绍re模块的方法之前,我们先来介绍一下pattern的概念。pattern可以理解为一个匹配模式,那么我们怎么获得这个匹配模式呢?很简单,我们需要利用re.compile方法就可以 。例如pattern = re.compile(r'hello')使用pattern即能提高代码的清晰度, 又能避免因正则表达式的重复编码而影响代码运行的速度。flags
2021-10-26 09:39:09 187
原创 python socket入门
什么是SocketSocket(套接字)是用来描述IP地址和端口的,是通信链的句柄。应用程序可以通过Socket向网络发送请求或者应答网络请求。关于python中的Socketpython的socket编程需要用到socket库,利用socket库,我们快速实现tcp和udp通信。实现tcp的server端流程创建socket句柄绑定ip和端口开始监听请求监听到client连接,生成连接句柄开始数据交互关闭连接句柄,继续监听代码示例import sockets = s
2021-10-26 09:38:21 197
原创 git常用命令整理
#命令整理1.分支管理创建分支git branch 分支名删除分支git branch -d 分支名查看分支git branch // 查看本地分支git branch -r // 查看远程分支git branch -a // 查看本地、远程分支git branch -vv // 查看所有分支和对应情况切换分支git checkout 分支名创建分支git branch 分支名git checkout -b 分支名 // 创建分支并切换到新分支2
2021-10-26 09:36:51 74
原创 docker笔记大全
docker安装linux系统通用(要先安装curl)curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun安装成功后可以使用以下命令查看安装结果docker info成功时示例如下[图片上传失败…(image-d5ca34-1635148680468)]镜像管理搜索镜像docker search 镜像名获取镜像docker pull 镜像名查看本地镜像docker images自定义镜像想
2021-10-26 09:35:33 95
原创 十大排序算法原理、python实现与效率测试
算法分类十种常见排序算法可以分为两大类比较类排序:通过比较来决定元素间的次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的次序,可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。算法复杂度算法详解冒泡排序相邻位置比较大小,互换位置,一次遍历后能保证最后的值为最大或最小,简单直观,适用于小规模数据算法步骤从前往后遍历,除了最后一个比较相邻元素,如果第一个比第二个大,就交换遍历结束后
2021-10-26 09:27:14 267
原创 axios结合mock的模块化框架开发
#### 框架目的减低不同业务接口代码的耦合性,减少编写的代码量,方便后续的维护和功能的扩展#### 框架结构框架在vue项目中的位置如下:![1635146857298](新建文本文档 (2).assets/1635146857298.png)框架文件结构如下:![1635144580633](新建文本文档 (2).assets/1635144580633.png)相关文件和文件夹的含义:* module: 里面包含vue项目所需的所有后台业务数据接口的代码,其下的 .
2021-10-25 16:19:50 310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人