前几天,一直在研究django框架,发现它自身封装了很多有用的API,很有意思。比如,数据库操作基本的创表,查询,插值,更新,删除都有,很方便,再加上json库可以直接将数据json化,通过服务器传给前端并显示,连数据库也很快,响应迅速。

django 操作mysql数据库
 
取数据:
  1. from blog.models import SfhdPredictDataTest
  2. w = SfhdPredictDataTest.objects.all().values('time')
  3.  
  4. print(w)
    ...: <QuerySet [{'time': 1470758979}, {'time': 1470758982}, {'time': 1470758985}, {'time': 1470758988}
    ...: , {'time': 1470758991}, {'time': 1470758994}, {'time': 1470758997}, {'time': 1470759000}, {'time'
    ...: : 1470759003}, {'time': 1470759006}, {'time': 1470759009}, {'time': 1470759012}, {'time': 1470759
    ...: 015}, {'time': 1470759018}, {'time': 1470759021}, {'time': 1470759024}, {'time': 1470759027}, {'t
    ...: ime': 1470759030}, {'time': 1470759033}, {'time': 1470759036}, '...
    ...:
  w = SfhdPredictDataTest.objects.all().values_list('time','sample_model_predict_1' )
 print(w)
 
    ...:
 
    ...: <QuerySet [(1470758979, 351.844), (1470758982, 351.353), (1470758985, 350.851), (1470758988, 350.
    ...: 244), (1470758991, 350.052), (1470758994, 350.084), (1470758997, 350.122), (1470759000, 350.203),
    ...:  (1470759003, 350.205), (1470759006, 350.208), (1470759009, 350.005), (1470759012, 349.716), (147
    ...: 0759015, 349.6), (1470759018, 349.612), (1470759021, 349.568), (1470759024, 349.421), (1470759027
    ...: , 349.114), (1470759030, 348.792), (1470759033, 348.751), (1470759036, 348.777), '...(remaining e
    ...: lements truncated)...']>
    
 
 1.返回列表类型
  1. lists = Chart.objects.values_list('time','predict')
  2.  
  3. list(lists)

2.返回字典类型
  lists = Chart.objects.values('time','predict') 
   list(lists)r2 
 
 

django引用app中的templates:
 
其中static为要加载的js,json文件
templates中加一个app的名字的文件夹,里面放html防止templates文件重名读错。
 

数据库访问

app.views的代码:主要是从数据库取数据,怎么达到实时呢,我是这样子的:反向查询数据库,(假设数据库的数据一直在插入)我们用切片切去反向后的表的前10个数据(我用的数据是3秒间隔的(三秒插入一次))。切片操作还有一个好处可以减少内存消耗,和加快查询速度,因为这张表本身很大且数据量巨大,列数达到130列,所以呢切片操作很适合。

怎么才能达到实时呢:我们在前端加一个ajax请求外面套一个定时器,定时间隔保证取得数据正好是插的数据量。

  1. from django.shortcuts import render
  2. from django.http import HttpResponse
  3. # Create your views here.
  4. from charts.models import Sfhd130Cols
  5. import json,time
  6. def index(request):
  7.  
  8. return render(request,'charts/index.html')
  9.  
  10. def charts_data(request):
  11. # b = Sfhd130Cols.objects.all().order_by('-time').values('time', 'amb05cq04bm_av')[:100]
  12. #
  13.  
  14. b = Sfhd130Cols.objects.order_by('-time').values('time', 'amb05cq04bm_av')[10:110]
  15. b = b.reverse() #从数据库读取数据后 queryset格式要先倒序才能list列表化
  16. b = list(b)
  17. # print(b, "hello")
  18. for lis in b:
  19. lis['time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(lis['time']))
  20. lists = json.dumps(b, indent=4)
  21.  
  22. # lis['time'] = time_change(lis['time'])
  23. return HttpResponse(lists)
  24.  
  25. def charts_update(request):
  26. b = Sfhd130Cols.objects.order_by('-time').values('time', 'amb05cq04bm_av')[:6]
  27. # b = b.reverse() # 从数据库读取数据后 queryset格式要先倒序才能list列表化
  28. b = list(b)
  29. # print(b, "hello")
  30. for lis in b:
  31. lis['time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(lis['time']))
  32. lists = json.dumps(b, indent=4)
  33.  
  34. return HttpResponse(lists)
  35. #时间戳转时间
  36. def time_change(date):
  37. date = time.localtime(date)
  38. return time.strftime('%Y-%m-%d %H:%M:%S',date)

还有一个重要的:当从数据库取出数据后是一个queryset类型,如果要倒序的话,要按照先reverse再list的操作,不然会得到空的list(就这里我困了好久,一直以为是数据库没取到数据~~~~~)

 这是我最近遇到的一些问题,和解决的方法,记我踩过的坑

django1.11如何实时访问mysql数据库的更多相关文章

  1. Linux下C++访问MySQL数据库

    由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令.想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据 ...

  2. java文件来演示如何访问MySQL数据库

    java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...

  3. PHP访问MySql数据库介绍

    在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...

  4. C#连接、访问MySQL数据库

    一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...

  5. 在Eclipse中使用JDBC访问MySQL数据库的配置方法

    在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...

  6. C#访问MySQL数据库(winform+EF)

    原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...

  7. Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...

  8. html页面通过http访问mysql数据库中的内容,实现用户登录的功能

    需求: 通过html编写用户登录页面,页面内容包括用户名.密码和登录按钮,点击登录后访问login.php文件,使用按钮默认的submit提交用户名和密码,在login.php中访问mysql数据库, ...

  9. 关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作

    PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","",& ...

随机推荐

  1. WuKong

    WuKong Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  2. keepalived中的脑裂

    在高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体.动作协调的HA系统,就分裂成为2个独立的个体.由于相互失去了联系,都以为是对方出了故障.两个节点上的HA软件像“裂脑人”一样,争 ...

  3. cloneNode克隆节点在不同浏览器的差异

    cloneNode是用于克隆节点的,如果待克隆的节点还有子节点以及自定义属性.添加的有事件,那么克隆时,可以指定是克隆节点本身,还是将其所有子节点信息也克隆进去,这是通过给cloneNode传递一个布 ...

  4. plsql远程连接虚拟机上的oracle

    下载oracle instantclient_11_2和plsql 将oracle instantclient_11_2解压到任意目录 在此目录下新建network,在network目录下新建admi ...

  5. 通讯框架 t-io 学习——websocket 部分源码解析

    前言 前端时间看了看t-io的websocket部分源码,于是抽时间看了看websocket的握手和他的通讯机制.本篇只是简单记录一下websocket握手部分. WebSocket握手 好多人都用过 ...

  6. Python学习--列表和元组

    在python中,最基本的数据结构是序列.序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个索引是0. python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buf ...

  7. Java线程面试题

     1:什么是线程?    线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线 ...

  8. linux kernel态下使用NEON对算法进行加速

    ARM处理器从cortex系列开始集成NEON处理单元,该单元可以简单理解为协处理器,专门为矩阵运算等算法设计,特别适用于图像.视频.音频处理等场景,应用也很广泛. 本文先对NEON处理单元进行简要介 ...

  9. Power BI连接SSAS(微软的分析服务)进行权限控制(本地部署)

    尬聊...... 在干活之前先尬聊一会儿 丸子我在10月下旬左右就开始弄power BI连接SSAS进行权限控制的问题,中间也是历经波折,看了网上很多资料,可是都是SSAS怎么进行权限控制,没有SSA ...

  10. python基础(二)-------数据类型

    python开发基础篇(二)数据类型 python数据类型有: 1.数字 1.只能存放一个值 2.一经定义,不可更改 3.直接访问 主要的分类为:整型,长整型,(python2有长整型的概念Pytho ...