[django-pyodbc-azure] 使用 Django 来连接 SQLServer 数据库

可以正常地使用SQLServer作为数据库。

Django 默认支持的数据库服务器有 Postgres、MySQL 和 Oracle 这三种。一开始我一直在寻找连接到 SQL Server 的方法,但是在谷歌上搜索「Django SQLServer」时,只能找到一些旧的信息(例如 django-mssql 这样已经停止更新的旧包),而且在 Teratai 上也有回答说「做不到,只能放弃」之类的意见。因此,我一直以为没有办法连接到 SQL Server。然而,最近我才知道现在仍然有一个持续更新的连接包存在。

关于django-pyodbc-azure

这是一个用于连接Django和SQLServer的库。
Github :https://github.com/michiya/django-pyodbc-azure

使用由Microsoft官方支持的Python用SQL Server连接库”pyodbc”通过ODBC进行连接。

Python SQL驱动程序 – pyodbc:
https://docs.microsoft.com/ja-jp/sql/connect/python/pyodbc/python-sql-driver-pyodbc?view=sql-server-2017

Python SQL驱动程序 – pyodbc:https://docs.microsoft.com/ja-jp/sql/connect/python/pyodbc/python-sql-driver-pyodbc?view=sql-server-2017

尽管不是Django或Microsoft的官方支持,但根据atmarkit的文章来看,这似乎是一种准官方的待遇。过去,这个包也被用于介绍在Microsoft发布的有关将Django部署到Azure的文章中(目前已被删除,并被替换为有关flask的文章)。

以下是存放在GitHub上的文章。

    Github : Python Tools 2.2 for Visual Studio を使用した Azure 上の Django と SQL Database

你在Qiita上也有发布过文章呢。

    Azure App Serviceにpipを使用できないパッケージをインストールする

因为在Github上有很多星标,所以我想要相信并尝试继续开发。

如何使用django-pyodbc-azure

在使用pip安装django-pyodbc-azure之后,需要编辑settings.py文件中的DATABASE设置。

settings.py示例

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'mydb',
        'USER': 'user@myserver',
        'PASSWORD': 'password',
        'HOST': 'myserver.database.windows.net',
        'PORT': '',

        'OPTIONS': {
            'driver': 'ODBC Driver 13 for SQL Server',
        },
    },
}

驱动程序默认使用”ODBC Driver 13 for SQL Server”,如果没有安装,将进行安装。即使由于某些原因无法安装,您也可以通过指定过去版本的字符串来进行连接。

请参考:ODBC下载请点击这里。

如果是Azure主机,则HOST为server_name.database.windows.net;如果是本地实例,则HOST为server\instance。例如,要连接本地计算机的Express Edition,则为localhost\SQLEXPRESS。

要连接到Express Edition,需要进行一些设置。
参考:SQL Server Express 进行远程连接。

我先在本地机器和Azure的数据库实例上进行了连接和测试。迁移过程中没有出现任何错误,一切都正常运行。

以下的文章整理了Django字段和SQL Server列类型之间的对应关系,请参考该条目。

    Django モデルフィールド:データベースフィールド 型対応表
广告
将在 10 秒后关闭
bannerAds