Flask: Как использовать url_for () вне контекста приложения? - PullRequest
3 голосов
/ 18 июня 2020

Я пишу сценарий, чтобы собрать электронные письма тех пользователей, которые не получили электронное письмо с подтверждением, и повторно отправить его им. Очевидно, что сценарий работает вне контекста приложения flask. Я хотел бы использовать url_for (), но не могу понять.

def resend(self, csv_path):
    self.ctx.push()
    with open(csv_path) as csv_file:
        csv_reader = csv.reader(csv_file)
        for row in csv_reader:
            email = row[0]
            url_token = AccountAdmin.generate_confirmation_token(email)
            confirm_url = url_for('confirm_email', token=url_token, _external=True)
        ...
    self.ctx.pop()

Первое, что мне нужно было сделать, это установить SERVER_NAME в config. Но затем я получаю это сообщение об ошибке:

werkzeug.routing.BuildError: не удалось создать URL-адрес для конечной точки «confirm_email» со ​​значениями [«токен»]. Вы имели в виду stati c вместо этого?

Вот как это определено, но я не думаю, что он может это даже найти, потому что он не регистрируется при запуске как скрипт:

app.add_url_rule('/v5/confirm_email/<token>', view_func=ConfirmEmailV5.as_view('confirm_email'))

Есть ли способ спасти url_for () или мне нужно создать свой собственный url? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...