Форум сайта python.su
sys_dev
тебе видней
Офлайн
sanderНу Вы предлагаете то, что не решает проблему! Какая разница что использовать “лопату” или “мотыгу” если нет “земли”? ;)
sys_devтебе видней
print_error(request.get_json(), 'request.get_json()')
request.get_json: None
Офлайн
sys_dev
Testing Flask Applications
Офлайн
sanderМой код в моем первом посте с упоминанием “self.client = self.app.test_client()” уже говорит о том, что упоминаемый Вами документ как минимум одним глазом просмотрен.
Testing Flask Applications
Отредактировано sys_dev (Май 1, 2015 14:39:08)
Офлайн
sys_dev
да POST запрос надо блджад
Офлайн
Хорошо. Если до POST-запроса. ОК. Вот его применение:
Примение:
def test_register_user(self): r = self.client.post(url_for('auth.register_user'), data=self.CREDENTIALS) print_error(r)
@auth.route('/users/register', methods=['POST']) @credentials_required def register_user(): pass
def print_request(request_): fmt = '\nmethod: %(method)s\ndata: %(data)s\nbase_url: %(base_url)s' data = { 'method' : request_.method, 'data' : request_.data, 'base_url' : request_.base_url} print(fmt % data, file=sys.stderr) def credentials_required(f): @wraps(f) def wrapper(*args, **kwargs): print_request(request) data = request.get_json() user = User.query.filter_by(username=data['username']).first() if not (user and user.verify_password(data['password'])): abort(401) return f(*args, **kwargs) return wrapper
method: POST data: b'' base_url: http://localhost/auth/users/register
Офлайн
sys_dev
как я писал ранее, все дело в
request.data
request.get_data()
Отредактировано sander (Май 1, 2015 19:14:01)
Офлайн
sanderСпасибо огромное!
и прочитай еще раз Testing Flask Applications
Отредактировано sys_dev (Май 1, 2015 19:51:47)
Офлайн
Итого:
Применяя request.data мою проблему можно решить путем “from flask import json” вместо “import json”. Пока не совсем понял почему, но работает!
Офлайн