Как убрать скобки из параметров фильтра SQLAlchemy? - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь отфильтровать модель SQLAlchemy внутри Docker-контейнера Ubuntu, используя драйверы OBDC, предоставляемые MS, но при выполнении filter_by драйвер добавляет квадратные скобки к параметрам

Я попытался запустить этот точный код на коробке Windows, и параметр отформатирован как sqlalchemy.engine.base.Engine ('4') вместо sqlalchemy.engine.base.Engine (['4'])

def get():
    reqargs = request.args
    data = tblData.query.filter_by(**reqargs).all()
    data = DataSchema.dump(data).data
    return {'status': 'success', 'data': data}, 200

URL: https://{internalhost}/getData?ID=4

Журнал SQLALCHEMY_ECHO:

2019-04-11 17:00:00,148 INFO sqlalchemy.engine.base.Engine SELECT [tblData].[CreatedDtTm] AS [tblData_CreatedDtTm], [tblData].[CreatedBy] AS [tblData_CreatedBy], [tblData].[UpdatedDtTm] AS [tblData_UpdatedDtTm], [tblData].[UpdatedBy] AS [tblData_UpdatedBy], [tblData].[ID] AS [tblData_ID],[tblData].[Description] AS [tblData_Description], [tblData].[AdditionalNotes] AS [tblData_AdditionalNotes], [tblData].[IsEnabled] AS [tblData_IsEnabled] ,
FROM [tblData] ,
WHERE [tblData].[ID] = ?
2019-04-11 17:00:00,148 INFO sqlalchemy.engine.base.Engine (['4'])

Ошибка:

(pyodbc.ProgrammingError) ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Column, parameter, or variable #1: Cannot find data type 4. (2715) (SQLExecDirectW)')

1 Ответ

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

Решена проблема.Мне нужно добавить .to_dict() к аргументам

    def get(self):
        reqargs = request.args.to_dict()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...