Как использовать flask.url_for () с фляжкой?

У меня есть настройка Flask:

api = Api(app, decorators=[csrf_protect.exempt]) api.add_resource(FTRecordsAPI, '/api/v1.0/ftrecords/<string:ios_sync_timestamp>', endpoint="api.ftrecord") 

Я хотел бы перенаправить внутренне до конечной точки api.ftrecord .

Но как только я попытаюсь это сделать:

 base_url = flask.url_for('api.ftrecord') 

Я получаю исключение.

  File "/Users/hooman/workspace/F11A/src/lib/werkzeug/routing.py", line 1620, in build raise BuildError(endpoint, values, method) BuildError: ('api.ftrecord', {}, None) 

Что я пропущу, пожалуйста?

3 Solutions collect form web for “Как использовать flask.url_for () с фляжкой?”

Вам нужно указать значение для части URL-адреса ios_sync_timestamp :

 flask.url_for('api.ftrecord', ios_sync_timestamp='some value') 

или вы можете использовать Api.url_for() , который берет ресурс:

 api.url_for(FTRecordsAPI, ios_sync_timestamp='some value') 

У меня была эта проблема сегодня. Вот запрос на перенос, который добавил функциональность (11 месяцев назад):

https://github.com/twilio/flask-restful/pull/110

Вы можете увидеть его пример использования там.

В моем файле ресурсов у меня нет доступа к контексту приложения. Поэтому я должен был сделать это:

 from flask.ext import restful from flask import current_app api = restful.Api print api.url_for(api(current_app), UserResource, user_id=user.id, _external=True) 

Надеюсь, это поможет.

 api = Api(app, decorators=[csrf_protect.exempt]) api.add_resource(FTRecordsAPI, '/api/v1.0/ftrecords/<string:ios_sync_timestamp>', endpoint="api.ftrecord") with app.test_request_context(): base_url = flask.url_for('api.ftrecord') 

Я встретил ту же ошибку. Используя 'with app.test_request_context ():', он работает.

  • Текстовое поле Readonly в Flask-Admin ModelView
  • AssertionError: отображение функции просмотра переписывает существующую функцию конечной точки: main
  • Изменение чертежей или обновление флеш-приложения во время выполнения
  • Почему json.dumps () необходимо в Flask?
  • Как вызвать метод из другого плана в Flask?
  • Flask-SQLAlchemy: несколько фильтров через одно отношение
  • Flask-SQLAlchemy: как условно вставить или обновить строку
  • Проверка наличия ключа в request.args в Flask
  • Python - лучший язык программирования в мире.