如何从Linux VM上的Django应用程序连接到Azure SQL数据库

如何从Linux VM上的Django应用程序连接到Azure SQL数据库,第1张

概述我搜索了有关在 Linux VM上托管使用SQL Azure数据库和Django应用程序的教程或完整解释. 我像这样更改了settings.py的数据库部分 DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': 'azure_database_name', 'USE 我搜索了有关在 Linux VM上托管使用sql Azure数据库和Django应用程序的教程或完整解释.

我像这样更改了settings.py的数据库部分

DATABASES = {    'default': {        'ENGINE': 'sql_server.pyodbc','name': 'azure_database_name','USER': 'user@server_name_like_wjrnvlwjrng3','PASSWORD': 'my_pass','HOST': 'server_name_like_wjrnvlwjrng3.database.windows.net','PORT': '1433','OPTIONS': {            'driver': 'FreeTDS','TDS_Version': '7.1',}    }}

我追加了

[MyDb]    host = server_name_like_wjrnvlwjrng3.database.windows.net    port = 1433    tds version = 7.1

到/etc/freetds/freetds.conf

并更改了/etc/odbc.ini

[MyDb]Description     = ololo lalala textDriver          = FreeTDSServername      = server_name_like_wjrnvlwjrng3Database        = azure_database_nameUID             = user@server_name_like_wjrnvlwjrng3PWD             = my_passPort            = 1433Charset         = UTF-8

之后我尝试调用python manage.py migrate并出错

django.db.utils.Error: ('001','[001] [nxDC[reD]SLSre]nbet onc odt ore (0) (sqlDriverConnect)')

拜托,帮帮我.

解决方法 这是一种在linux机器上使用pymssql和FreeTDS在Python和Django中连接到sql Azure数据库的方法.
以下是如何做到这一点:
在终端中,导航到manage.py所在的目录.
安装以下包:

sudo apt-get update  sudo apt-get install freetds-dev freetds-binsudo apt-get install python-dev python-pipsudo pip pymssql

您实际上是在您的环境中安装FreeTDS和Pymssql.这将允许您连接到sql数据库.你要做的是在linux机器上使用pyodbc本地与Django一起访问你目前无法访问的sql Azure数据库.

一旦安装了软件包,就可以使用以下python代码创建表,插入/更新行并选择所有内容.为简单/测试,您可以将代码放在vIEws.py脚本中.确保您创建了一个您想要创建表的数据库,否则它将选择默认值

# Connectimport pymssqlconn = pymssql.connect(server='test.database.windows.net',user='newuser@test',password='yourpassword',database='sampledatabase')cursor = conn.cursor()#Createcursor.execute("""IF OBJECT_ID('Votes','U') IS NOT NulL    DROP table VotesCREATE table Votes (    name VARCHAR(100),value INT NOT NulL,PRIMARY KEY(name))""")#Insertcursor.executemany(    "INSERT INTO Votes VALUES (%s,%d)",[('NodeJs','0'),('Python',('C#','0')])# you must call commit() to persist your data if you don't set autocommit to Trueconn.commit()        #Select cursor.execute('SELECT * FROM Votes')     result = ""     row = cursor.fetchone()     while row:         result += str(row[0]) + str(" : ") + str(row[1]) + str(" Votes")         result += str("\n")         row = cursor.fetchone()     print result

我们刚刚创建了一个名为Votes的表,在其中插入值并使用select语句来打印所有内容.希望这可以帮助.如果您仍需要帮助,请随时与我们联系.我有一个可以帮助你的导游,如果需要的话.

总结

以上是内存溢出为你收集整理的如何从Linux VM上的Django应用程序连接到Azure SQL数据库全部内容,希望文章能够帮你解决如何从Linux VM上的Django应用程序连接到Azure SQL数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1021173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存