sql >> Database >  >> RDS >> Sqlserver

Maak verbinding met MSSQL-database met Flask-SQLAlchemy

Dus ik had net een zeer vergelijkbaar probleem en kon het oplossen door het volgende te doen.

Door de SQL Alchemy-documentatie te volgen, ontdekte ik dat ik de my pyodbc-verbindingsreeks als volgt kon gebruiken:

# 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

Dit veroorzaakte toen een extra fout omdat ik ook Flask-Migrate gebruikte en blijkbaar niet van % houdt in de verbindings-URI. Dus ik ging wat meer graven en vond dit bericht. Ik heb toen de volgende regel gewijzigd in mijn ./migrations/env.py bestand

Van:

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

Aan:

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)

Nadat ik dit alles had gedaan, kon ik mijn migraties doen en alles lijkt nu correct te werken.



  1. Het standaarddatabase-e-mailprofiel voor een gebruiker in SQL Server (T-SQL) wijzigen

  2. Java:CLOB invoegen in de Oracle-database

  3. Hoe vastgoedbeheerders de efficiëntie kunnen verbeteren met een database

  4. Vind waarden die geen getallen bevatten in SQLite