Проблемы с подключением к серверу SQL с питоном
Я недавно установил Microsoft SQL Server 2014 на свой ПК, так как хочу создать базу данных для создаваемого веб-приложения (я изучаю Python в течение года и имею базовый опыт работы с SQLite).
После установки SQL Server 2014 и создания базы данных под названием "Пользователи" я просто пытаюсь выполнить некоторые базовые команды для своей базы данных, но снова и снова сталкиваюсь с первым препятствием!
Я установил pymssql и pyodbc и попытался запустить команды непосредственно с ними, но не смог. (например, pymssql дает мне TypeError: аргумент типа 'NoneType' не повторяется, когда я устанавливаю переменную conn = pymssql.connect (сервер, пользователь, пароль, "tempdb")
Моя последняя попытка - использовать SQLalchemy для достижения моего долгожданного соединения с базой данных SQL. Однако после установки этого происходит сбой при следующей ошибке:"sqlalchemy.exc.OperationalError: (pymssql.OperationalError) (20009, сообщение об ошибке DB-Lib 20009, уровень серьезности 9:\n Не доступно для подключения: Adaptive Server недоступен или не существует \nNet-Lib error во время неизвестной ошибки (10035)\n')"
Вопрос, на который мне нужно ответить, как мне начать общаться с моей базой данных с помощью SQLalchemy?
Код, который я использую, выглядит следующим образом: из sqlalchemy import *
engine = create_engine('mssql+pymssql://Han & Lew:@SlugarPlum:1433/Users')
m = MetaData()
t = Table('t', m,
Column('id', Integer, primary_key=True),
Column('x', Integer))
m.create_all(engine)
Да, мой компьютер называется SlugarPlum. Пользователь Han & Lew. И мой сервер называется THELROYSERVER. DSN = 1433. Нет пароля. (Я не знаю, разумно ли, чтобы я предоставлял эту информацию онлайн, но данные, которые у меня есть, не являются конфиденциальными, поэтому я думаю, что стоит попробовать.)
Кроме того, если кто-нибудь может направить меня на ресурс для начинающих для сервера Python-SQL, который был бы потрясающим, так как я был поражен тем, насколько сложным это кажется!
1 ответ
Вот функция подключения и пример подключения через pyodbc. Соединение через pymssql должно быть таким же простым, как форматирование соединительной строки для pymssql. Я предоставил опции для Windows и Linux, но тестировал только на Linux. Я надеюсь, что это помогает.
def sqlalchemy_connect(connect_string):
""" Connect to the database via ODBC, start SQL Alchemy engine. """
def connect():
return pyodbc.connect(connect_string, autocommit=True)
db = create_engine('mssql://', creator=connect)
db.echo = False
return db
def main():
global DBCONN
# Linux with FreeTDS
connect_string = "DRIVER={FreeTDS};SERVER=<server name>;PORT=<port num>;DATABASE=<db>;UID=<user>;PWD=<password>;TDS_Version=<version num>;"
# Windows with SQL Server
connect_string = "DRIVER={SQL Server};SERVER=<server name>;PORT=<port num>;DATABASE=<db>;UID=<user>;PWD=<password>;"
DBCONN = sqlalchemy_connect(connect_string)
if __name__ == "__main__":
main()