Ya no busques más por otros sitios porque has llegado al espacio correcto, poseemos la respuesta que necesitas y sin problema.
Solución:
El DSN basado en archivos string está siendo interpretado por SQLAlchemy como nombre de servidor = c
nombre de la base de datos = users
.
Prefiero conectarme sin usar DSN, es una tarea de configuración menos con la que lidiar durante las migraciones de código.
Esta sintaxis funciona con la autenticación de Windows:
engine = sa.create_engine('mssql+pyodbc://server/database')
O con autenticación SQL:
engine = sa.create_engine('mssql+pyodbc://user:[email protected]/database')
SQLAlchemy tiene una explicación detallada de las diferentes conexiones string opciones aquí.
En Python 3 puedes usar la función quote_plus
del módulo urllib.parse
para crear parámetros para la conexión:
import urllib
params = urllib.parse.quote_plus("DRIVER=SQL Server Native Client 11.0;"
"SERVER=dagger;"
"DATABASE=test;"
"UID=user;"
"PWD=password")
engine = sa.create_engine("mssql+pyodbc:///?odbc_connect=".format(params))
Para utilizar la autenticación de Windows, desea utilizar Conexión_de_confianza como parámetro:
params = urllib.parse.quote_plus("DRIVER=SQL Server Native Client 11.0;"
"SERVER=dagger;"
"DATABASE=test;"
"Trusted_Connection=yes")
En Python 2 deberías usar la función quote_plus
de la biblioteca urllib
en cambio:
params = urllib.quote_plus("DRIVER=SQL Server Native Client 11.0;"
"SERVER=dagger;"
"DATABASE=test;"
"UID=user;"
"PWD=password")
Tengo información actualizada sobre la conexión a MSSQL Server sin usar DSN y usando la autenticación de Windows. En mi ejemplo, tengo las siguientes opciones: el nombre de mi servidor local es “(localdb)ProjectsV12”. Nombre del servidor local que veo en las propiedades de la base de datos (estoy usando Windows 10/Visual Studio 2015). Mi nombre de base de datos es “MainTest1”
engine = create_engine('mssql+pyodbc://(localdb)ProjectsV12/MainTest1?driver=SQL+Server+Native+Client+11.0', echo=True)
Es necesario especificar el controlador en la conexión. Puede encontrar su versión de cliente en:
panel de control>Sistemas y seguridad>Herramientas administrativas.>Orígenes de datos ODBC>ficha DSN del sistema>Agregar
Mire la versión del cliente nativo de SQL de la lista.
Calificaciones y comentarios
Si para ti ha sido de utilidad este post, agradeceríamos que lo compartas con el resto seniors de esta manera contrubuyes a dar difusión a esta información.