如何从Linux VM上的Django应用程序连接到Azure SQL数据库
发布时间:2020-12-13 23:51:39 所属栏目:Linux 来源:网络整理
导读:我搜索了有关在 Linux VM上托管使用SQL Azure数据库和Django应用程序的教程或完整解释. 我像这样更改了settings.py的数据库部分 DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc','NAME': 'azure_database_name','USER': 'user@server_name_like_w
我搜索了有关在
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 text Driver = FreeTDS Servername = server_name_like_wjrnvlwjrng3 Database = azure_database_name UID = user@server_name_like_wjrnvlwjrng3 PWD = my_pass Port = 1433 Charset = 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-bin sudo apt-get install python-dev python-pip sudo pip pymssql 您实际上是在您的环境中安装FreeTDS和Pymssql.这将允许您连接到SQL数据库.你要做的是在Linux机器上使用pyodbc本地与Django一起访问你目前无法访问的SQL Azure数据库. 一旦安装了软件包,就可以使用以下python代码创建表,插入/更新行并选择所有内容.为简单/测试,您可以将代码放在views.py脚本中.确保您创建了一个您想要创建表的数据库,否则它将选择默认值 # Connect import pymssql conn = pymssql.connect(server='test.database.windows.net',user='newuser@test',password='yourpassword',database='sampledatabase') cursor = conn.cursor() #Create cursor.execute(""" IF OBJECT_ID('votes','U') IS NOT NULL DROP TABLE votes CREATE TABLE votes ( name VARCHAR(100),value INT NOT NULL,PRIMARY KEY(name) ) """) #Insert cursor.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 True conn.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语句来打印所有内容.希望这可以帮助.如果您仍需要帮助,请随时与我们联系.我有一个可以帮助你的导游,如果需要的话. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |