使用pyodbc的Django后端,用于Microsoft SQL Server和Azure SQL Database
项目描述
django-pyodbc-azure 是 django-pyodbc 的现代分支,它是使用 pyodbc 库通过ODBC实现的 Django Microsoft SQL Server外部数据库后端。它支持Microsoft SQL Server和Azure SQL Database。
特性
支持Django 2.1
支持Microsoft SQL Server 2008/2008R2、2012、2014、2016、2017和Azure SQL Database
通过Django测试套件的多数测试
与Microsoft ODBC Driver for SQL Server、SQL Server Native Client 和 FreeTDS ODBC驱动兼容
依赖
Django 2.1
pyodbc 3.0或更高版本
安装
安装pyodbc和Django
安装django-pyodbc-azure
pip install django-pyodbc-azure
现在您可以将您的Django应用程序或项目使用的设置文件中的ENGINE设置指向'sql_server.pyodbc'模块路径
'ENGINE': 'sql_server.pyodbc'
配置
标准Django设置
在DATABASES字典中的以下条目控制后端的行为
ENGINE
字符串。它必须是"sql_server.pyodbc"。
NAME
字符串。数据库名。必需。
HOST
字符串。SQL Server实例,格式为"服务器\实例"(本地)或"服务器.database.windows.net"(Azure SQL数据库)。
端口
字符串。服务器实例端口。空字符串表示默认端口。
用户
字符串。数据库用户名,格式为"用户"(本地)或"用户@服务器"(Azure SQL数据库)。如果未指定,则使用MS集成安全。
密码
字符串。数据库用户密码。
AUTOCOMMIT
布尔值。如果您想禁用Django的事务管理并实现自己的,请将此设置为False。
以下条目也适用于任何给定的数据库级设置字典的TEST字典
NAME
字符串。运行测试套件时使用的数据库名称。如果使用默认值(None),则测试数据库将使用名称“test_” + NAME。
校对
字符串。创建测试数据库时使用的校对顺序。如果使用默认值(None),则测试数据库将分配SQL Server实例的默认校对。
依赖项
字符串。数据库创建顺序的依赖关系。有关更多详细信息,请参阅官方Django文档。
镜像
字符串。在测试期间此数据库应镜像的数据库别名。默认值为None。有关更多详细信息,请参阅官方Django文档。
选项
字典。当前可用的键包括
驱动程序
字符串。要使用的ODBC驱动程序(例如,“ODBC Driver 13 for SQL Server”,“SQL Server Native Client 11.0”,“FreeTDS”等)。默认值为“ODBC Driver 13 for SQL Server”。
隔离级别
字符串。为每个数据库会话设置事务隔离级别。此条目的有效值是READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ,SNAPSHOT和SERIALIZABLE。默认值为None,表示不对数据库会话设置隔离级别,并将使用SQL Server的默认值。
dsn
字符串。可以使用命名DSN代替HOST。
host_is_server
布尔值。仅在使用Unix/Linux下的FreeTDS ODBC驱动程序时相关。
默认情况下,在使用FreeTDS ODBC驱动程序时,HOST设置中指定的值在ODBC连接字符串组件中的SERVERNAME部分中而不是在SERVER部分中使用;这意味着此值应该是FreeTDS配置文件freetds.conf中存在的数据服务器定义的名称,而不是主机名或IP地址。
但是,如果此选项存在且其值为True,则此特殊行为将被关闭。
有关更多信息,请参阅http://www.freetds.org/userguide/dsnless.htm。
unicode_results
布尔值。如果设置为True,则激活pyodbc的unicode_results功能,并且从pyodbc返回的字符串始终是Unicode。默认值为False。
extra_params
字符串。ODBC连接的附加参数。格式为"param=value;param=value"。
校对
字符串。在数据库中执行文本字段查找时使用的校对名称。默认值为None;这意味着不会添加校对指定符到您的查找SQL(将使用数据库的默认校对)。对于中文语言,可以将其设置为"Chinese_PRC_CI_AS"。
连接超时
整数。设置数据库连接过程的超时时间(秒)。默认值是 0,表示禁用超时。
connection_retries
整数。设置数据库连接过程的重试次数。默认值是 5。
connection_retry_backoff_time
整数。设置数据库连接过程重试时的等待时间(秒)。默认值是 5。
query_timeout
整数。设置数据库查询的超时时间(秒)。默认值是 0,表示禁用超时。
后端特定设置
以下项目级别的设置也控制后端的行为
DATABASE_CONNECTION_POOLING
布尔值。如果设置为 False,则不激活 pyodbc 的连接池功能。
示例
以下是数据库设置的示例
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', }, }, } # set this to False if you want to turn off pyodbc's connection pooling DATABASE_CONNECTION_POOLING = False
限制
以下功能目前不支持
在迁移时更改模型字段从或到 AutoField
注意
django-pyodbc-azure 此版本仅支持 Django 2.1。如果您想在旧版本的 Django 上使用它,请在安装时指定适当的版本号(例如 Django 2.0 的 2.0.x.x)
pip install "django-pyodbc-azure<2.1"
项目详情
哈希值 for django_pyodbc_azure-2.1.0.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1fa3b31f4432ef2c90c434b284ad093478f8221121dafef05fafbe2c4d872211 |
|
MD5 | 4bfdee7ad4a8fd99377a235867d563f9 |
|
BLAKE2b-256 | 18ab133c68bbea94839d8f3b8b4aea4f70e1c6b8ac929aba4adbadc458566a76 |