передача аргументов в API, созданный флягой в python - PullRequest
0 голосов
/ 25 мая 2018

Я полный новичок в API и Python.на самом деле, после того, как я разочаровался в поиске свободного хозяина, поддерживающего сантехника в RI, решил попробовать его на python.Простая проблема заключается в том, что у меня есть простая функция, которая принимает два числовых аргумента и, используя заданный CSV-файл, выполняет некоторые вычисления и возвращает число (я просто сделал это в R сантехником из localhost).Теперь для теста в Python написали ниже код:

from flask import Flask

app = Flask(__name__)

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

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

ну, это правильно работает.но когда я пытаюсь заставить функцию принимать аргументы, подобные этому:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello(a):
    return a + 2

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

, я получаю эту страницу, на которой написано, что я не передал аргументы.

enter image description here

Мой главный вопрос заключается в том, как я могу передать аргументы?(например, в API, созданном R-сантехником R, я называю это следующим образом: localhost/5000/?a=2)

Мой другой вопрос: может ли этот тип хоста API запрашивать что-то вроде Heroku?

Ответы [ 3 ]

0 голосов
/ 25 мая 2018

Из Документация Flask :

Вы можете добавлять переменные разделы в URL, помечая разделы <variable_name>.Ваша функция затем получает <variable_name> в качестве аргумента ключевого слова.При желании вы можете использовать конвертер для указания типа аргумента, например <converter:variable_name>.

Так что в вашем случае это будет:

@app.route("/<int:a>")
def hello(a):
    return a + 2

Другой вариант будетиспользуйте запрос данных .

0 голосов
/ 25 мая 2018

Вы также можете использовать его таким образом, передавая имя в качестве параметра!

@app.route('/helloworld/<Name>')
def helloworld(Name):
    print Name

другая реализация была бы такой, просмотрите документацию по python-flask!

@app.route("/<int:a>")
def hello(a):
    return a + 2
0 голосов
/ 25 мая 2018

Вам необходимо включить параметр «а» в декоратор @ app.route:

@app.route('/<int:a>')
def hello(a):
   return a + 2
...