Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django + Influxdb

Django + Influxdb
EN

Stack Overflow用户
提问于 2018-05-06 02:37:59
回答 1查看 9K关注 0票数 9

我有存储在进水数据库中的tseries数据,我希望通过web提供这些数据,因此我正在考虑Django框架及其REST框架作为解决方案。

目前,Django框架上有不知道对Influxdb的支持,但是我看到有人在讨论线程这里中暗示成功地创建了这个堆栈。

如果对如何实现这一点有任何明确的评论或想法,特别是如何将influxdb集成到Django框架中,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-30 09:09:14

您可以在Docker中同时使用Django和InfluxDB。首先,创建一个项目和应用程序。

代码语言:javascript
运行
AI代码解释
复制
mkdir django-influxdb-example
cd django-influxdb-example
django-admin startproject project
cd project
django-admin startapp app
cd ..

创建一个虚拟环境并安装django、postgres和进水b

代码语言:javascript
运行
AI代码解释
复制
python3 -m venv venv
source venv/bin/activate
pip install django psycopg2 influxdb
pip install --upgrade pip
pip freeze > requirements.txt

现在,我的要求看起来,

代码语言:javascript
运行
AI代码解释
复制
certifi==2018.8.24
chardet==3.0.4
Django==2.1.1
idna==2.7
influxdb==5.2.0
psycopg2==2.7.5
python-dateutil==2.7.3
pytz==2018.5
requests==2.19.1
six==1.11.0
urllib3==1.23

创建一个Dockerfile

代码语言:javascript
运行
AI代码解释
复制
FROM python:3.6-alpine3.7

ENV PYTHONUNBUFFERED 1

RUN apk update \
    && apk add libpq postgresql-dev \
    && apk add build-base

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install -r requirements.txt

COPY project ./

创建一个docker-compose.yml文件,

代码语言:javascript
运行
AI代码解释
复制
version: '3'

services:

  db:
    image: postgres

  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - ./project:/usr/web/app
    ports:
      - "8000:8000"
    depends_on:
      - db
      - influxdb
    links:
      - influxdb

  influxdb:
    image: influxdb
    ports:
      - "8083:8083"
      - "8086:8086"

我在我的Django settings.py中添加了以下内容

代码语言:javascript
运行
AI代码解释
复制
INFLUXDB_HOST = 'influxdb'
INFLUXDB_PORT = 8086
INFLUXDB_USERNAME = None
INFLUXDB_PASSWORD = None
INFLUXDB_DATABASE = 'example'
INFLUXDB_TIMEOUT = 10

在这一点上,你可以试着建造整件事,看看它是否会出现,

代码语言:javascript
运行
AI代码解释
复制
docker-compose build
docker-compose run web python3 manage.py makemigrations
docker-compose run web python3 manage.py migrate
docker-compose up

如果您转到localhost:8000,那么您应该会看到默认的Django启动页面。如果在web容器上打开交互式Python会话,则应该能够通过Python模块访问InfluxDB,

代码语言:javascript
运行
AI代码解释
复制
docker-compose run web python3
Starting django-influxdb-example_db_1 ... done
Starting django-influxdb-example_influxdb_1 ... done
Python 3.6.6 (default, Sep 12 2018, 02:19:14)
[GCC 6.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from influxdb import InfluxDBClient
>>> client = InfluxDBClient('influxdb', 8086)
>>> client.get_list_database()
[{'name': '_internal'}]
>>> client.create_database('example')
>>> client.get_list_database()
[{'name': '_internal'}, {'name': 'example'}]

现在所有的东西都是连接和运行的,您可以专注于编写代码来创建数据库,并添加点。我查看了django-进水数据库-指标的代码,发现了下面的代码,我将这些代码放在utils.py目录中的app/目录中。这使用我们前面在settings.py文件中定义的常量创建了一个进水数据库客户端。

代码语言:javascript
运行
AI代码解释
复制
from django.conf import settings

from influxdb import InfluxDBClient

import logging
logger = logging.getLogger(__name__)


def get_influxdb_client():
    """Returns an ``InfluxDBClient`` instance."""
    client = InfluxDBClient(
    settings.INFLUXDB_HOST,
    settings.INFLUXDB_PORT,
    settings.INFLUXDB_USERNAME,
    settings.INFLUXDB_PASSWORD,
    settings.INFLUXDB_DATABASE,
    timeout=getattr(settings, 'INFLUXDB_TIMEOUT', 10),
    ssl=getattr(settings, 'INFLUXDB_SSL', False),
    verify_ssl=getattr(settings, 'INFLUXDB_VERIFY_SSL', False),
)
return client

最后,从这里,我可以创建数据库,添加点,并通过客户端执行查询。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50198741

复制
相关文章
添加和使用XSLT扩展函数
当出现错误时,XSLT处理器(Xalan或Saxon)执行当前错误处理程序的error()方法,将消息作为参数发送到该方法。类似地,当发生致命错误或警告时,XSLT处理器会根据需要执行datalError()或Warning()方法。
用户7741497
2022/07/05
4.6K0
xslt notes:数值函数与字符串函数
憋了好久了,懒啊,还是发出来。 xslt数值函数 number(num) 返回参数的数值。(num可以是布尔值、字符串或节点集) 示例:`<xsl:value-of select="number('1')"/>` 返回数字 1 abs(num) 返回参数的绝对值 示例:`<xsl:value-of select="abs('-3.14')"/>` 返回数字 3.14 ceiling(num) 返回大于num的最小整数 示例:`<xsl:value-of select="ceiling('2.1
Vicsh
2018/05/16
1.9K0
XSL、XSLT
(图片来自:https://www.w3school.com.cn/xsl/xsl_for_each.asp)
问问计算机
2021/05/08
1.9K0
XSL、XSLT
Excel公式技巧20: 从列表中返回满足多个条件的数据
在实际工作中,我们经常需要从某列返回数据,该数据对应于另一列满足一个或多个条件的数据中的最大值。
fanjy
2020/03/25
10.2K0
Excel公式技巧20: 从列表中返回满足多个条件的数据
函数返回指针
先写一个例子,运行一下看看 #include <stdio.h> int add(int a, int b) { printf("a = %d b = %d\n", &a, &b);
用户7272142
2023/10/11
2270
函数返回指针
返回函数
一个函数可以返回一个计算结果,也可以返回一个函数 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回 返回一个函数时,牢记该函数并未执行,返回函数中不要引用任何可能会变化的变量
py3study
2020/01/17
1.3K0
【Python】函数 ③ ( 函数返回值定义语法 | 函数返回多个返回值 | 代码示例 )
在 Python 函数中 , 通过 return 关键字 , 可以返回一个结果给调用者 , 这个返回结果就是 函数返回值 ;
韩曙亮
2023/10/11
1.1K0
【Python】函数 ③ ( 函数返回值定义语法 | 函数返回多个返回值 | 代码示例 )
这9大优势,让Sitecore跨境表现更出色!
如今提到数字化升级转型,提到跨境出海,总是无法避开一个话题——CMS数字体验平台,相对于说五花八门的出海技巧、营销手段,一个好的CMS数字平台更像是一个企业发展线上市场的基础,有着不可替代性,只有搭建了好的CMS平台,企业才能就此展开品牌升级。在这样的需求背景下,Sitecore成为了众人追逐的焦点也就不意外了。
青岛互联网
2023/03/16
7920
执行XSLT转换
XSLT(Extensible StyleSheet Language Transformations,可扩展样式表语言转换)是一种基于XML的语言,用于描述如何将给定的XML文档转换为另一个XML或其他“人类可读”的文档。可以使用%XML.XSLT和%XML.XSLT2包中的类来执行XSLT 1.0和2.0转换。
用户7741497
2022/07/05
3.5K0
Sitecore 在2023年Gartner数字体验平台魔力象限中被评为leader
Sitecore 在 2023 年 Gartner 数字体验平台魔力象限中连续第六年胜出,成为了值得推荐的DXP平台,在今年,Sitecore 还展示了Sitecore XP 的继任者 Sitecore Experience Manager (XM) Cloud(它是其所有 SaaS 可组合 DXP的基石)。
青岛互联网
2023/09/12
2640
python 列表函数
注意:(1)list1[beg:end]将显示列表的从list1[beg]到list1[end-1]的元素,list1[end]不会显示
全栈程序员站长
2022/09/08
5940
python 列表函数
[python]函数返回多个return
python支持函数直接返回多个变量,具体用法如下: >>> def test(): ... a=2 ... b=3 ... return a,b ... >>> print(test()) (2, 3) >>> a,b=test() >>> print(a) 2 >>> print(b) 3 >>> print(test()[0]) 2 >>> print(test()[1]) 3
py3study
2020/01/19
2.6K0
Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数
>>> abs(-10) #把abs指向10后,无法通过abs(-10)调用该函数
统计学家
2019/04/10
3590
stat()函数_stat函数返回值
在 linux 中,经常需要获取文件的属性,比如修改时间,文件大小等等。stat 函数将会帮助我们得到这些信息。
全栈程序员站长
2022/09/24
3.6K0
JavaScript | 数组的splice()方法,向/从数组添加/删除项目,并返回删除的项目
JavaScript代码: /* * splice() 方法向/从数组添加/删除项目,并返回删除的项目。 * 注释:splice() 方法会改变原始数组。 * 语法:array.splice(index, howmany, item1, ....., itemX) * index:必需。整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。 * howmany:可选。要删除的项目数。如果设置为 0,则不会删除任何项目。 * item1, ...
倾盖
2022/08/16
3.6K0
JavaScript | 数组的splice()方法,向/从数组添加/删除项目,并返回删除的项目
EasyCVR服务器集群设备列表返回数量异常的排查与优化
EasyCVR平台已经实现了集群功能,该功能具体是指可以通过多台服务器协作的方式,实现流媒体处理、分发时的服务器负载均衡以及不同服务器之间的数据共享需求。集群具备高可靠性、高可扩展性,以及较强的可伸缩性,在实际项目应用中能发挥极大的作用。
TSINGSEE青犀视频
2022/08/30
4920
从一个国内普通开发者的视角谈谈Sitecore
  简而言之,Sitecore就是一个基于ASP.NET技术的CMS系统,它不仅具有传统Web CMS的所有功能,还集成了Marketing营销(当然,这个功能价格不菲)的功能,可以提供一个一站式的在线营销解决方案。
Edison Zhou
2018/08/20
2.2K0
从一个国内普通开发者的视角谈谈Sitecore
点击加载更多

相似问题

需要帮助恢复Sitecore项目

37

在sitecore 6.2中查找特定XSLT文件的项目列表

10

Sitecore:从Xslt到JSON?

10

从WebAPI调用返回Sitecore媒体项目

15

从帮助器函数渲染和返回

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档