在Django项目模板中生成音频文件

2024-09-27 07:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Django创建一个非常简单的网站,该网站将存储大量音频文件,并可用于流式传输和下载。我知道还有其他方法可以做到这一点,比如使用AWS,但我想先找出这个方法。我将在这里包括我的模板,但我想指出的是,它目前很混乱,因为我一直在尝试不同的结构来解决这个问题

{% for song in concert.song_set.all %}
    <li>{{ song.song_title }}</li>
    <li>{{ song.song_location }}</li>
    <!-- Working -->
    <audio 
      class = "audioPlayer uniqueShowAP"
      controls <--controlsList="nodownload"
        src="{% static 'shows/audio/redRocks2019/01 Yi.mp3' %}">
        Your browser does not support the
        <code>audio</code> element.
    </audio>
    <!-- Not Working...yet -->
    <audio 
        class = "audioPlayer uniqueShowAP"
        controls <--controlsList="nodownload"
        src="/shows/static/shows/{{ song.song_location }}">
        Your browser does not support the
        <code>audio</code> element.
    </audio>

{% endfor %}

我想要发生的是,对于我保存的每一场音乐会,它都会遍历在该音乐会下保存的歌曲,并将它们添加到歌曲名称下。我把每首歌的相对位置保存在数据库中,这样我就可以调用它的位置了

我通过调用{song.song_location}来测试这一点,它正确地显示了每首歌曲的位置

我还尝试使用src=“{%static”shows/audio/redRocks2019/01 Yi.mp3“%”来确保元素至少设置正确,并且也可以正常工作

如何格式化元素中的src=“”,使其指向正确的音频文件?我可以包括我的视图和模型,或者您可能需要的任何其他信息来帮助我解决这个问题。我已经做了一段时间了,只需要有人给我指出正确的方向


Tags: 方法srcsong网站codestaticlocationli
1条回答
网友
1楼 · 发布于 2024-09-27 07:21:02

我认为你应该考虑使用FileField。您可以有一个Song模型和一个song_file = FileField(upload_to='song_files/')字段。然后,在模型实例中循环时,可以更轻松地保存和访问文件:

<audio src='{{ song.song_file.url }}' controls></audio>

这些文件将根据您的媒体设置存储在本地。正如您所提到的,您可以轻松地过渡到使用S3等存储解决方案来存储媒体文件。它与Django一起工作非常顺利,所以不要害怕

静态文件应该用于css、js和图像等不会改变的东西,比如favicon。我猜它可以被用于一首静态歌曲,假设。但我认为,以这种方式将静态文件与模型实例结合使用有点做作和混乱

相关问题 更多 >

    热门问题