sql >> データベース >  >> RDS >> Sqlserver

Flask-SQLAlchemyを使用してMSSQLデータベースに接続します

    ですから、私は非常によく似た問題を抱えていて、次のようにすることで解決することができました。

    SQL Alchemyのドキュメントに従って、pyodbc接続文字列を次のように使用できることがわかりました。

    # 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
    

    その後、Flask-Migrateも使用していて、接続URIの%が気に入らないため、これにより追加のエラーが発生しました。それで、私はもう少し掘り下げて、この投稿を見つけました。次に、./migrations/env.pyの次の行を変更しました ファイル

    差出人:

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

    宛先:

    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)
    

    これをすべて行った後、移行を行うことができ、すべてが正常に機能しているように見えます。



    1. Oracleclob列で特定の文字列を検索します

    2. Android Studio getSlotFromBufferLocked:不明なバッファーエラー

    3. 座標から半径5マイル以内のすべての行をクエリするにはどうすればよいですか?

    4. パラメータなしでSQLインジェクションを回避する