编写代码,为基于Flask的校园音乐网站编写新模块,新模块功能为校园点歌模块,该模块的运行功能为,使用者提交网易云歌曲链接(必填),提交点歌人信息、被点歌人信息、留言,提交成功后,可以播放该歌曲,要求播放和提交为同一界面,
时间: 2024-06-09 13:05:14 浏览: 158
校园音乐网站平台源代码
4星 · 用户满意度95%
以下是一个简单的示例代码,实现了基于Flask的校园音乐网站的点歌模块。
首先,需要安装Flask和网易云音乐API的Python包。可以使用以下命令安装:
```
pip install flask
pip install NetEase-Music-API
```
然后,创建一个名为`app.py`的Python文件,并在其中编写以下代码:
```python
from flask import Flask, render_template, request
from NEMusicAPI import NEMusicAPI
app = Flask(__name__)
music_api = NEMusicAPI()
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
# 获取表单数据
song_url = request.form['song_url']
sender = request.form['sender']
receiver = request.form['receiver']
message = request.form['message']
# 提交点歌请求
result = music_api.submit_order(song_url, sender, receiver, message)
if result['code'] == 200:
# 播放歌曲
song_id = result['data']['song_id']
song_url = music_api.get_song_url(song_id)
return render_template('player.html', song_url=song_url)
else:
# 提交失败,显示错误信息
error_message = result['message']
return render_template('index.html', error_message=error_message)
else:
# 显示点歌页面
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
```
在上面的代码中,我们首先导入了Flask和NetEase-Music-API模块。然后,创建了一个Flask应用程序实例,并创建了一个NetEase-Music-API的对象。在`index`路由函数中,我们处理了GET和POST请求。如果是POST请求,我们从表单中获取歌曲链接、点歌人信息、被点歌人信息和留言,然后调用NetEase-Music-API的`submit_order`方法提交点歌请求。如果提交成功,我们从返回结果中获取歌曲ID,并使用`get_song_url`方法获取歌曲的播放链接。最后,我们将播放链接传递给`player.html`模板,以便在同一界面上播放歌曲。如果提交失败,我们将错误信息传递给`index.html`模板,以便显示错误消息。
接下来,我们需要创建两个HTML模板,分别为`index.html`和`player.html`。在`templates`目录下创建这两个文件,并编写以下代码:
`index.html`模板:
```html
<!DOCTYPE html>
<html>
<head>
<title>校园点歌</title>
</head>
<body>
{% if error_message %}
<p style="color: red;">{{ error_message }}</p>
{% endif %}
<form method="post">
<label for="song_url">歌曲链接:</label>
<input type="text" id="song_url" name="song_url" required><br><br>
<label for="sender">点歌人:</label>
<input type="text" id="sender" name="sender" required><br><br>
<label for="receiver">被点歌人:</label>
<input type="text" id="receiver" name="receiver" required><br><br>
<label for="message">留言:</label>
<textarea id="message" name="message"></textarea><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
`player.html`模板:
```html
<!DOCTYPE html>
<html>
<head>
<title>校园点歌</title>
</head>
<body>
<audio controls autoplay>
<source src="{{ song_url }}" type="audio/mpeg">
您的浏览器不支持音频播放。
</audio>
</body>
</html>
```
在`index.html`模板中,我们创建了一个表单,包含四个输入框和一个提交按钮。在`player.html`模板中,我们创建了一个音频播放器,使用`<audio>`标签实现。
最后,我们启动应用程序,并在浏览器中访问http://localhost:5000/即可使用校园点歌模块。
阅读全文