Колба обучения, не удается подключиться к SQL Server - PullRequest
0 голосов
/ 24 апреля 2019

Я недавно начал изучать Flask.Я пытаюсь подключиться к своей локальной базе данных SQL Server и отобразить таблицу.Я не уверен, правильно ли я выполняю строку подключения.

Я не уверен, какой пароль для сервера.Соединение с Windows Аутентификация в SQL Server Management Studio.Нужно ли это со строкой подключения для локальной базы данных?

Я не уверен, что нужно сделать, чтобы это заработало.Я работаю над этим часами и никуда не денусь.pyodbc.connect подключен в pyCharm, но не в браузере.Что бы я ни пытался, я получаю сообщение об ошибке «Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо в приложении произошла ошибка».

from flask import Flask, g, render_template, abort, request
import json
import pypyodbc as pyodbc

##cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
##                     "Server=LAPTOP-16DOMG6S\MSSQLSERVER3;"
  ##                    "Database=ImportTest;"
    ##                 "Trusted_Connection=yes;")

CONNECTION_STRING = 'Driver={ODBC Driver 17 for SQL Server};Server=LAPTOP->16DOMG6S\MSSQLSERVER3;' \
                   'Database=ImportTest;' \
                    'Uid = LAPTOP-16DOMG6S\dmc03' \
                    'Trusted_Connection=yes;'

app = Flask(__name__)
app.config.from_object(__name__)

##Displays the database table in pycharm with pyodbc.connect
##for row in cursor:
 ##  print('row = %r' % (row,))


@app.before_request
def before_request():
    try:
        g.sql_conn = pyodbc.connect(CONNECTION_STRING, autocommit=True)
    except Exception:
        abort(500, "No database connection could be established.")

@app.teardown_request
def teardown_request(exception):
    try:
        g.sql_conn.close()
    except AttributeError:
        pass





##Landing Page. Connection Working?

@app.route('/', methods=['GET'])
def hello():
    return 'This will display article information '



##Display All Articles in Database

@app.route('/articles', methods=['GET'])
def allArticle():
    curs = g.sql_conn.cursor()
    query = 'select * from ImportTest.dbo.gwTable2 '
    curs.execute(query)

    columns = [column[0] for column in curs.description]
    data = []

    for row in curs.fetchall():
        data.append(dict(zip(columns, row)))
   return json.dumps(data, indent=4, sort_keys=True, default=str)


if __name__ == '__main__':
   app.run()

Буду признателен за любую помощь,

Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2019

Я заметил, что в комментарии выше переменной CONNECTION_STRING сервер имеет значение LAPTOP-16DOMG6S\MSSQLSERVER3, но в переменной есть дополнительный >:

# Original
LAPTOP-16DOMG6S\MSSQLSERVER3\

# Variable
LAPTOP->16DOMG6S\MSSQLSERVER3
       ^
       | Notice the right arrow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...