Как вставить переменную jinja2 в атрибут элемента html? - PullRequest
0 голосов
/ 17 марта 2019

Мой вопрос касается создания цикла for с использованием словаря Python и jinja2. Я хочу использовать значение каждой пары ключ / значение в качестве исходного атрибута для элемента в HTML.

--- HTML / jinja2 ---

{% for song, mp3 in song_dict.items() %}
        <li> {{ song }} :<audio controls> <source  src="{{ mp3 }}" type ="audio/mpeg"></audio>{{ mp3 }}</li>
{% endfor %}

фрагмент кода Python :

def home():    
    song_dict = {"Pumba":'"static/PUMBA_1.mp3"', "You're Feet":'"static/youre feet mix 1.8.17_1.mp3"',
     "ratatatatata":'"static/ratatat.mp3"',
    "12 | 8":'"static/12_8 NO CLICK.mp3"', "Sage to Your Internet" : '"static/sage to your internet.mp3"',
    "EB":'"static/EB DEMO MIX NO CLICK.mp3"'}

    return render_template("pet_friend.html",
                            song_list = song_list,
                            song_dict = song_dict
                            )

Я могу получить текст для печати после аудиоплеера, но не могу передать путь к атрибуту src аудиоэлемента.

Любая помощь / предложения будут с благодарностью!

1 Ответ

1 голос
/ 18 марта 2019

Путь должен быть '/static/PUMBA_1.mp3', а не '"static/PUMBA_1.mp3"' (с ведущим /)

Но если вы уже храните файлы в статической папке, самый простой способ обслуживания файлов в шаблонах jinja - вызвать эту функцию: url_for('static',filename=your_file.mp3)

он автоматически создает путь к вашей статической папке и позволяет вам изменять его, не изменяя все (поэтому вы можете удалить все «статические» в song_dict).


Шаблон дзиндзя:

{% for song, mp3 in song_dict.items() %}
    <li>{{ song }}:<audio controls> 
                   <source src="{{ url_for('static',filename=mp3) }}" type ="audio/mpeg">
                   </audio>{{ mp3 }}</li>
{% endfor %}

Просмотр (без всяких «статических /» и двойных ' "" '):

def home():
    song_dict = {"Pumba":'PUMBA_1.mp3', "You're Feet":'youre feet mix 1.8.17_1.mp3',
     "ratatatatata":'ratatat.mp3'}

    return render_template("pet_friend.html",
                            song_dict = song_dict
                            )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...