编写一个项目, 基于Flask框架的点歌平台,具体功能为提交网易云歌曲连接,能播放该歌曲,显示提交人,,并能播放该歌曲
时间: 2024-05-06 18:15:25 浏览: 133
好的,以下是基于 Flask 框架的点歌平台的代码示例。
首先,我们需要安装 Flask 和网易云音乐 API 的 Python 包。可以通过以下命令安装:
```
pip install Flask
pip install NeteaseMusicApi
```
接下来,我们创建一个名为 `app.py` 的 Python 文件,来实现点歌平台的后端逻辑。
```python
from flask import Flask, request, render_template
from NeteaseMusicApi import api
app = Flask(__name__)
# 首页
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
# 获取提交的歌曲链接
song_url = request.form.get('song_url')
# 获取歌曲信息
song_info = api.get_song_detail(song_url)
# 获取歌曲播放地址
song_url = api.get_song_url(song_info[0]['id'])
# 获取提交人
submitter = request.form.get('submitter')
# 返回歌曲信息和提交人
return render_template('play.html', song_info=song_info[0], song_url=song_url, submitter=submitter)
else:
return render_template('index.html')
if __name__ == '__main__':
app.run()
```
上述代码中,我们首先导入了 Flask 和网易云音乐 API 的 Python 包。然后,我们定义了一个 `index` 函数,用于处理网站的首页请求。如果收到了 POST 请求,就获取提交的歌曲链接,并使用网易云音乐 API 获取歌曲信息和播放地址。最后,将歌曲信息、播放地址和提交人作为参数传递给 `play.html` 模板,显示歌曲信息和播放器。如果收到了 GET 请求,就直接返回 `index.html` 模板,显示歌曲提交页面。
接下来,我们创建两个 HTML 模板文件,分别为 `index.html` 和 `play.html`。
`index.html` 文件内容如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>点歌平台</title>
</head>
<body>
<h1>点歌平台</h1>
<form method="POST" action="/">
<label for="song_url">歌曲链接:</label>
<input type="text" id="song_url" name="song_url" required>
<br><br>
<label for="submitter">提交人:</label>
<input type="text" id="submitter" name="submitter" required>
<br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
`play.html` 文件内容如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ song_info['name'] }}</title>
</head>
<body>
<h1>{{ song_info['name'] }}</h1>
<p>歌手:{{ song_info['artists'][0]['name'] }}</p>
<p>专辑:{{ song_info['album']['name'] }}</p>
<p>提交人:{{ submitter }}</p>
<audio src="{{ song_url }}" controls></audio>
</body>
</html>
```
`index.html` 模板文件中,我们使用了一个表单,用于提交歌曲链接和提交人信息。`play.html` 模板文件中,我们显示了歌曲信息和提交人信息,并使用 HTML5 的 `audio` 标签来播放歌曲。
最后,我们在命令行中运行 `python app.py` 命令启动服务器,即可访问点歌平台。
注:由于网易云音乐 API 接口有时会变动,代码中的 API 调用可能会失效,需要根据实际情况进行修改。
阅读全文