Django - 连接到Hive2服务器

时间:2018-02-20 07:18:17

标签: django python-3.x django-models django-rest-framework django-views

使用Django应用程序尝试连接到hive2服务器,如下所示:

settings.py enter image description here

当运行“python manage.py inspectdb> webapp / models.py”以使用表的数据对象的类更新models.py时,我收到如下错误:

  

django.core.exceptions.ImproperlyConfigured:'django.db.backends.hive2'不是可用的数据库后端。   尝试使用'django.db.backends.XXX',其中XXX是以下之一:   'mysql','oracle','postgresql','sqlite3'

在浏览了Django docs here之后我明白Django只支持数据库服务器以上,但是想知道在Django中是否有任何访问HIVE2服务器的方法,我有一个python独立脚本是能够连接到hive2服务器并在shell中打印结果如下所示,是否有任何方法可以将Django与此脚本耦合,以便我可以在前端向用户显示我的表:

dbconnect.py

from p in Person select new Person(p);

1 个答案:

答案 0 :(得分:1)

  1. 通过settings.py运行项目时,连接到数据库一次。
  2. 创建一个全局conn对象以在任何模块中使用。
  3. 只要您想进行数据库操作,就导入conn个对象(例如,在views.py中)。
  4. 示例:

    settings.py

    from impala.dbapi import connect
    import pandas as pd 
    
    DATABASE_CONN = connect(host='zzzzzzzz', 
                            port=0001, 
                            auth_mechanism='PLAIN', 
                            user="xxxxxx", 
                            password="yyyyy")
    

    然后在views.py

    from django.conf import settings
    
    conn = settings.DATABASE_CONN
    
    
    def test_view(request)
        query = "select * from table1 limit 5" 
        cur = conn.cursor()
        try:
          cur.execute(query)
          rows = cur.fetchall()
        ...