pass для просмотра функции из шаблонов jinja в колбе [дубликат]

  1. Всегда пытайтесь отправлять заголовки в почтовую функцию.
  2. Если вы отправляете почту через localhost, выполните настройки smtp для отправки почты.
  3. Если вы отправляете почту через затем проверьте, включена ли функция отправки электронной почты на вашем сервере.
3
задан davidism 22 March 2016 в 01:34
поделиться

2 ответа

Вы не можете оценить JavaScript в Jinja. Вы пытаетесь создать URL-адрес на стороне сервера, в то время как Jinja выполняет рендеринг, но вы ссылаетесь на переменную, которая доступна только в JavaScript, запущенном в клиентском браузере.

Создание URL-адреса клиента сторона является самым простым исправлением. (Я не знаю, как выглядит ваш маршрут, так что вот пример.)

$('#demo').load('/url/for/addshare2/' + variable1);

Однако это не очень полезно, потому что вы не можете использовать url_for, поэтому вам нужно hard-code url. Это хороший признак того, что вы хотите, чтобы конечная точка AJAX передавала параметры, а не конечную точку, которая содержит значения.

@app.route('/addshare2', methods=['POST'])
def addshare2():
    share = request.json['share']
    ...
    return jsonify(result=...)

Теперь вы можете сгенерировать URL с url_for и пройти параметры как данные формы.

$.post(
    '{{ url_for('addshare2') }}',
    {share: variable1},
    function (data) {
        // do something with data on successful response
    }
);
8
ответ дан davidism 22 August 2018 в 01:46
поделиться

Иногда я использую следующее обходное решение с временной строкой-заполнителем:

var variable1 = "someString";
$('#demo').load(
    "{{ url_for('addshare2', share='ADDSHARE2') }}".replace("ADDSHARE2", variable1)
);

Это не совсем правильно, и я все еще ищу лучшее решение. Но он выполняет эту работу.

1
ответ дан Falko 22 August 2018 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: