sql-server - Django 连接到 SQL Server - django/sql_server - pyodbc

标签 sql-server django

我尝试安装 django_pyodbc 但是当我尝试 make migrations 时出现错误:

django.core.exceptions.ImproperlyConfigured: Django 2.1 is not supported.



我的settings.py:
'Test_DB': {
    'ENGINE': 'django_pyodbc',
    'NAME': 'TEST',
    'HOST': '127.0.0.1',
    'USER': 'sa',
    'PASSWORD': '123456',
    'OPTIONS': {
        'driver': 'ODBC Driver 12 for SQL Server',
    },
},

当我尝试安装 django-pyodbc-azure 时,出现了另一个错误:

尝试使用“django.db.backends.XXX”,其中 XXX 是以下之一:
'mysql'、'oracle'、'postgresql'、'sqlite3'


我的settings.py:
'Test_DB': {
    'ENGINE': 'sql_server.pyodbc',
    'NAME': 'TEST',
    'HOST': '127.0.0.1',
    'USER': 'sa',
    'PASSWORD': '123456',
    'OPTIONS': {
        'driver': 'ODBC Driver 12 for SQL Server',
    },
},

那么我应该怎么做才能连接SQL Server 2012?

最佳答案

我确实搜索了这个问题很长时间。

真的很生气,没有人真正说出细节,这就是为什么我想写下来帮助那些即将面临这个问题的人。

我发现我应该执行以下操作,以便我可以在 Django 中运行 pyodbc。

1.首先安装“ODBC Driver 11 for SQL Server & Install pyodbc”

  • 由于我的服务器使用 ODBC 驱动程序 11 来提取数据,我应该将它从 17 切换到 11
  • 在终端运行 pip install pyodbc

  • 2.settings.py:
    DATABASES = {
    'MSSQL':
    {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'DB_NAME',
        'USER': 'USER',
        'PASSWORD': 'PWD',
        'HOST': 'IP',
        'PORT': '1433',
        'OPTIONS':{
            'driver': 'ODBC Driver 11 for SQL Server',
        },
    }
    

    }

    3.views.py:
    import pyodbc
    from django.conf import settings
    
    connection = pyodbc.connect(
                                "Driver={" + settings.DATABASES['MSSQL']['OPTIONS']['driver'] + "};"
                                "Server=" + settings.DATABASES['MSSQL']['HOST'] + ";"
                                "Database=" + settings.DATABASES['MSSQL']['NAME'] + ";"
                                "UID=" + settings.DATABASES['MSSQL']['USER'] + ";"
                                "PWD=" + settings.DATABASES['MSSQL']['PASSWORD'] + ";"
                                "Trusted_Connection=no;"
                                )
    
    cursor = self.connection.cursor()
    query = """SELECT * FROM DB_NAME;"""
    cursor.execute(query)
    rows = cursor.fetchall()
    columns = [column[0] for column in cursor.description]
    data = []
    

    关于sql-server - Django 连接到 SQL Server - django/sql_server - pyodbc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60406889/

    相关文章:

    sql - 如何根据 SQL Server 中的下一条记录字段进行排序?

    sql-server - 更改服务器核心数量后是否需要重新优化 View 和流程

    Django 表单 : how to check out checkbox state in template

    django - 如何使用 Django ModelForm 生成下拉输入?

    sql-server - 从 SQL Server 表以正确的语法生成 XML

    mysql - 如何在某一列具有相同值的行中查询具有最高列值的行 v.2

    sql-server - Azure 超大规模 - 如何回收未使用的分配空间

    python - 如何将多个 Django 模型收集到一个列表中?

    html - Django 模板继承导致总线错误

    Django - ImageField,在开发服务器中上传、存储和提供图像