Flask Server无法加载音频文件

穆罕默·纳齐尔(Moham Nazir)

我在repl.it上使用以下代码运行了一个简单的烧瓶设置。

#The flask server to keep bot alive
from flask import Flask
from threading import Thread

app = Flask('')

#Define served page HTML
@app.route('/')
def home():
    return """
    <body style="background-color:black;">
    <h1 style='color: red;'>TreesBot is Running on Port:8080</h1>
    <embed src="song.mp3" loop="true" autostart="true" width="2"
         height="0">
</div>
"""

#Make repl.it run the server on port 8080
def run():
  app.run(host='0.0.0.0',port=8080)

#Run it on a different thread from the main program
def keep_alive():
    t = Thread(target=run)
    t.start()

如您所见,HTML设置了页面背景以及用于背景音乐的嵌入式.mp3文件。但是,当我尝试使用flask加载.mp3文件时,它在控制台中给了我以下错误:

172.18.0.1 - - [29/Dec/2020 12:47:44] "GET /song.mp3 HTTP/1.1" 404 -

这个404让我觉得它找不到文件。谁能看到我做错了什么?

完整的代码存储库可在这里找到:https : //repl.it/@MixtapeMessiah/Esoterica-v10#keep_alive.py

感谢您的任何帮助,您可以提供。

克里斯蒂亚诺·阿劳霍

您的flask应用程序没有用于

/song.mp3

您应该为其创建路由,请检查以下内容:https : //pythonprogramming.net/flask-send-file-tutorial/

简而言之,应该是这样的:

from flask import send_file
#    ...
@app.route('/song.mp3')
def song_mp3():
    return send_file('song.mp3', attachment_filename='song.mp3')

重要的是要说,在Flask中创建一个用于服务静态文件的路由是明智的,在生产环境中,让Web服务器(例如Nginx)为您处理这件事,因此Flask可以处理逻辑并确实需要处理静态文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章