Колба Python3: «Функция () отсутствует 1 обязательный позиционный аргумент: 'test_ouput'" - PullRequest
0 голосов
/ 29 апреля 2019

Я только начинаю с FLASK и наткнулся на эту ошибку:

 test() missing 1 required positional argument: 'test_ouput'

Почему это происходит? Функции объявляются перед вызовом, и обычно эта ошибка означает, что аргумент при вызове функции отсутствует.

def foo(x):
    print (x)

foo(x)

Так что это работает, почему это не работает в моем скрипте с flask?

Вот мой "полный" код:

from flask import Flask, jsonify, request
from flask_pymongo import PyMongo

app = Flask(__name__)

#app.config ['MONGO_DBNAME'] = 'DBfoo'
app.config['MONGO_URI']     = 'mongodb://127.0.0.1:27017/Test'


mongo = PyMongo(app)

@app.route('/TestRouteGet', methods=['GET', 'POST'])

def test(test_ouput):
    print (test_output)

def get_Test():

    collection = mongo.db.TestCol

    if request.method == 'POST':

        test_input = "Test BlaBla"
        test(test_input)


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

При отправке запроса POST у меня должен быть напечатан test_output ("Test Blabla") в консоли. Спасибо за ваше время.

1 Ответ

1 голос
/ 30 апреля 2019

Ваша функция ожидает аргумент test_output, вы должны получить этот аргумент из строки URL http://flask.pocoo.org/docs/1.0/quickstart/#url-building

@app.route('/TestRouteGet/<test_output>', methods=['GET', 'POST'])

Затем вы можете сделать запрос к / TestRouteGet / insert_your_string, и ваша функция напечатает полученную строку.

...