sql >> Databáze >  >> RDS >> Sqlserver

Připojte se k databázi MSSQL pomocí Flask-SQLAlchemy

Takže jsem měl velmi podobný problém a dokázal jsem ho vyřešit následujícím způsobem.

Podle dokumentace SQL Alchemy jsem zjistil, že bych mohl použít svůj připojovací řetězec pyodbc takto:

# Python 2.x
import urllib
params = urllib.quote_plus("DRIVER={SQL Server Native Client 10.0};SERVER=dagger;DATABASE=test;UID=user;PWD=password")
engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)

# Python 3.x
import urllib
params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client 10.0};SERVER=dagger;DATABASE=test;UID=user;PWD=password")
engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)


# using the above logic I just did the following
params = urllib.parse.quote_plus('DRIVER={SQL Server};SERVER=HARRISONS-THINK;DATABASE=LendApp;Trusted_Connection=yes;')
app.config['SQLALCHEMY_DATABASE_URI'] = "mssql+pyodbc:///?odbc_connect=%s" % params

To pak způsobilo další chybu, protože jsem také používal Flask-Migrate a zřejmě se mu nelíbí % v URI připojení. Tak jsem ještě trochu pátral a našel tento příspěvek. Poté jsem změnil následující řádek v mém ./migrations/env.py soubor

Od:

from flask import current_app
config.set_main_option('sqlalchemy.url',
                   current_app.config.get('SQLALCHEMY_DATABASE_URI'))

Komu:

from flask import current_app
db_url_escaped = current_app.config.get('SQLALCHEMY_DATABASE_URI').replace('%', '%%')
config.set_main_option('sqlalchemy.url', db_url_escaped)

Po tom všem jsem mohl provést migraci a vše se zdá, jako by to nyní fungovalo správně.



  1. Jak zkontrolovat hodnoty parametrů NLS v databázi Oracle

  2. Upgrade datové platformy SQL Server v roce 2015

  3. Snadný způsob, jak nasadit MySQL Galera Cluster na AWS

  4. Analýza dat ODBC v IBM SPSS