Kir*_*nov 3 python sql-server django freetds azure-sql-database
我搜索了有关在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',
}
}
}
Run Code Online (Sandbox Code Playgroud)
我追加了
[MyDb]
host = server_name_like_wjrnvlwjrng3.database.windows.net
port = 1433
tds version = 7.1
Run Code Online (Sandbox Code Playgroud)
到/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
Run Code Online (Sandbox Code Playgroud)
之后我试着打电话python manage.py migrate
给错误
django.db.utils.Error: ('001', '[001] [nxDC[reD]SLSre]nbet onc odt ore (0) (SQLDriverConnect)')
Run Code Online (Sandbox Code Playgroud)
拜托,帮帮我.
这是一种在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
Run Code Online (Sandbox Code Playgroud)
您实际上是在您的环境中安装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', '0'),
('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
Run Code Online (Sandbox Code Playgroud)
我们刚刚创建了一个名为votes的表,在其中插入值并使用select语句来打印所有内容.希望这可以帮助.如果您仍需要帮助,请随时与我们联系.我有一个可以帮助你的导游,如果需要的话.
归档时间: |
|
查看次数: |
2003 次 |
最近记录: |