编写模块代码,基于flask的校园音乐网的新模块,该模块为点歌模块,使用者需要提交网易云歌曲链接,填写点歌人信息,被点歌人信息,以及留言,提交成功后弹窗提示,在原界面生成播放器,播放该歌曲,要求代码完整
时间: 2024-05-07 17:20:09 浏览: 131
Flask之flask-script模块使用
以下是基于 Flask 的校园音乐网点歌模块的代码,包括提交点歌请求和生成播放器的功能。
```python
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
# 存储点歌请求的列表
song_requests = []
@app.route('/')
def index():
return render_template('index.html')
@app.route('/request_song', methods=['POST'])
def request_song():
# 获取点歌请求的表单数据
song_url = request.form['song_url']
requester_name = request.form['requester_name']
recipient_name = request.form['recipient_name']
message = request.form['message']
# 创建一个点歌请求的字典
song_request = {
'song_url': song_url,
'requester_name': requester_name,
'recipient_name': recipient_name,
'message': message
}
# 将点歌请求添加到存储列表中
song_requests.append(song_request)
# 返回成功的 JSON 响应
return jsonify({'success': True})
@app.route('/play_song')
def play_song():
# 获取最新的点歌请求
song_request = song_requests[-1]
# 从点歌请求中获取歌曲链接和其他信息
song_url = song_request['song_url']
requester_name = song_request['requester_name']
recipient_name = song_request['recipient_name']
message = song_request['message']
# 生成播放器的 HTML 代码
player_html = f"""
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86
src="//music.163.com/outchain/player?type=2&id={song_id}&auto=0&height=66"></iframe>
"""
# 生成播放页面的 HTML 代码
html = f"""
<h2>点歌成功!</h2>
<p>歌曲链接:{song_url}</p>
<p>点歌人:{requester_name}</p>
<p>被点歌人:{recipient_name}</p>
<p>留言:{message}</p>
<hr>
{player_html}
"""
# 清空点歌请求列表
song_requests.clear()
# 返回播放页面的 HTML 代码
return html
if __name__ == '__main__':
app.run(debug=True)
```
上述代码中,我们首先定义了一个存储点歌请求的列表 `song_requests`,然后在 `/request_song` 路由中获取表单数据,创建点歌请求的字典,并将其添加到 `song_requests` 列表中。在 `/play_song` 路由中,我们获取最新的点歌请求,从中获取歌曲链接和其他信息,生成播放器的 HTML 代码,并最终生成播放页面的 HTML 代码。同时,我们在 `/play_song` 路由中清空 `song_requests` 列表,以防止多次请求时数据重复。
在 Flask 应用程序中,我们需要使用 HTML 模板来渲染页面。在这里,我们假设有一个名为 `index.html` 的模板文件,用于呈现点歌页面。在 `index.html` 文件中,我们需要包含一个表单,允许用户提交点歌请求。以下是一个简单的 `index.html` 文件的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>点歌页面</title>
</head>
<body>
<h1>点歌页面</h1>
<form action="/request_song" method="POST">
<label for="song_url">歌曲链接:</label>
<input type="text" name="song_url" id="song_url"><br>
<label for="requester_name">点歌人:</label>
<input type="text" name="requester_name" id="requester_name"><br>
<label for="recipient_name">被点歌人:</label>
<input type="text" name="recipient_name" id="recipient_name"><br>
<label for="message">留言:</label>
<textarea name="message" id="message"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
最后,我们需要在根目录下创建一个名为 `templates` 的文件夹,并将 `index.html` 文件放入其中。运行应用程序后,访问根目录即可进入点歌页面。用户填写表单并提交点歌请求后,会自动跳转到播放页面,播放器会自动播放用户点歌的歌曲。
阅读全文