Вызовите метод другого класса в Flask API - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь представить службу данных как API для приложения PHP. Я написал логи API c в файле с именем APILogi c .py. Код в этом выглядит следующим образом

class APILogic(object):
    def __init__(self):
        # the initialization is done here
        ...

    def APIfunction(self):
        # the API logic is built here, it uses the class variables and methods
        ...

Я создал еще один файл для API. Его называют API.py. Код в этом файле выглядит следующим образом

import APILogic from APILogic
class MyFlask:
    def __init__(self):
        self.test = APILogic()

from flask import Flask
app = Flask(__name__)

my_flask = MyFlask()

@app.route("/Test")
def Test():
    return my_flask.test.APIfunction

if __name__ == "__main__":
    app.run(debug=True,port=9999)

Когда я запускаю код, я получаю сообщение об ошибке

> TypeError: APIfunction() takes 1 positional argument but 3 were given
The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a method.

Хотя для функции API нет аргументов.

Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Функция просмотра не вернула правильный ответ. Тип возвращаемого значения должен быть строкой, dict, кортежем, экземпляром Response или вызываемым WSGI, но это был метод.

Похоже, вы возвращаете метод, но звучит так, как будто вы хотите вернуть результат этого метода:

@app.route("/Test")
def Test():
    return my_flask.test.APIfunction()
0 голосов
/ 03 февраля 2020

Функция просмотра должна возвращать правильный ответ. Пример кода API

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...