编写模块代码,基于flask的校园音乐网的新模块,该模块为点歌模块,使用者需要提交网易云歌曲链接,填写点歌人信息,被点歌人信息,以及留言,提交成功后弹窗提示,在原界面生成播放器,播放该歌曲,要求有详细的提示信息,代码完整,越详细越好
时间: 2024-06-09 21:05:13 浏览: 58
仿照网易云界面做的Flask网页音乐播放器(豪华版)
首先,需要安装 Flask 的库。可以使用以下命令进行安装:
```
pip install Flask
```
然后在 Flask 项目中新建一个名为 `song_request.py` 的文件,代码如下:
```python
from flask import Flask, render_template, request, redirect, url_for, flash
from pydub import AudioSegment
from pydub.playback import play
import requests
app = Flask(__name__)
app.secret_key = 'some_secret_key'
@app.route('/')
def index():
return render_template('index.html')
@app.route('/request', methods=['POST'])
def song_request():
song_url = request.form['song_url']
requester_name = request.form['requester_name']
requested_name = request.form['requested_name']
message = request.form['message']
try:
# 获取歌曲信息
response = requests.get(song_url)
song_id = response.url.split('/')[-1]
song_info_url = f'https://api.imjad.cn/cloudmusic/?type=detail&id={song_id}'
song_info = requests.get(song_info_url).json()['songs'][0]
song_name = song_info['name']
artist_name = song_info['ar'][0]['name']
song_image_url = song_info['al']['picUrl']
# 下载歌曲
song_data = requests.get(song_url).content
with open('song.mp3', 'wb') as f:
f.write(song_data)
# 播放歌曲
song = AudioSegment.from_file('song.mp3', format='mp3')
play(song)
flash('点歌成功!')
return redirect(url_for('index'))
except Exception as e:
flash(f'点歌失败!{e}')
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True) # 启动 Flask 服务器
```
以上代码实现了一个基本的点歌功能,当用户填写完点歌信息并提交后,会自动播放该歌曲。其中,使用了 Pydub 库实现了播放歌曲的功能,使用了 Flask 的 flash() 函数实现了提交成功或失败的提示信息。
接下来,需要在项目中新建一个名为 `index.html` 的模板文件,代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>校园音乐网-点歌</title>
</head>
<body>
<h1>校园音乐网-点歌</h1>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul class="flashes">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<form method="POST" action="{{ url_for('song_request') }}">
<label for="song_url">歌曲链接:</label>
<input type="text" name="song_url" id="song_url" required>
<br>
<label for="requester_name">点歌人:</label>
<input type="text" name="requester_name" id="requester_name" required>
<br>
<label for="requested_name">被点歌人:</label>
<input type="text" name="requested_name" id="requested_name" required>
<br>
<label for="message">留言:</label>
<textarea name="message" id="message"></textarea>
<br>
<button type="submit">提交</button>
</form>
</body>
</html>
```
以上代码实现了一个简单的表单,用户可以在表单中填写点歌信息并提交,提交后会根据填写的歌曲链接自动播放该歌曲,并在页面上显示提交成功或失败的提示信息。
最后,需要在 Flask 项目的根目录下新建一个名为 `static` 的文件夹,并在该文件夹下新建一个名为 `song.mp3` 的空白文件,用于存储下载的歌曲。
完成以上步骤后,就可以启动 Flask 服务器并访问网站了。可以使用以下命令启动服务器:
```
python song_request.py
```
然后在浏览器中访问 `http://localhost:5000/` 就可以看到点歌页面了。
阅读全文