编写模块代码,基于flask的校园音乐网的新模块,该模块为点歌模块,使用者需要提交网易云歌曲链接,填写点歌人信息,被点歌人信息,以及留言,提交成功后弹窗提示,在原界面生成播放器,播放该歌曲,要求有详细的提示信息,代码完整,越详细越好
时间: 2024-04-30 10:18:33 浏览: 46
仿照网易云界面做的Flask网页音乐播放器(豪华版)
首先,我们需要安装Flask以及其他必要的依赖:
```
pip install flask
pip install requests
pip install beautifulsoup4
```
接下来,我们创建一个名为`app.py`的Flask应用程序,并导入所需的模块:
```python
from flask import Flask, render_template, request
import requests
from bs4 import BeautifulSoup
```
然后,我们定义一个视图函数来处理点歌请求。在这个函数中,我们将解析用户提交的歌曲链接,获取歌曲信息并在页面上显示。如果用户确认提交,则我们将在页面上生成播放器以播放该歌曲。最后,我们将使用JavaScript在提交成功后显示弹窗。
```python
app = Flask(__name__)
@app.route('/song-request', methods=['GET', 'POST'])
def song_request():
if request.method == 'POST':
# 获取用户提交的表单数据
song_url = request.form['song-url']
requester_name = request.form['requester-name']
recipient_name = request.form['recipient-name']
message = request.form['message']
# 解析歌曲链接,并获取歌曲信息
page = requests.get(song_url)
soup = BeautifulSoup(page.content, 'html.parser')
song_title = soup.find('meta', property='og:title')['content']
song_artist = soup.find('meta', property='og:music:artist')['content']
song_image = soup.find('meta', property='og:image')['content']
# 在页面上显示歌曲信息
return render_template('confirm.html',
song_title=song_title,
song_artist=song_artist,
song_image=song_image,
requester_name=requester_name,
recipient_name=recipient_name,
message=message)
# 如果请求方法为GET,则返回点歌页面
return render_template('song-request.html')
@app.route('/song-request-confirm', methods=['POST'])
def song_request_confirm():
# 在提交成功后显示弹窗
return "<script>alert('提交成功!');</script>"
if __name__ == '__main__':
app.run(debug=True)
```
最后,我们需要创建两个HTML文件:一个用于显示点歌页面,另一个用于显示确认页面。
在`templates/song-request.html`中,我们创建一个表单,允许用户输入歌曲链接、点歌人信息、被点歌人信息以及留言:
```html
<!DOCTYPE html>
<html>
<head>
<title>点歌</title>
</head>
<body>
<h1>点歌</h1>
<form method="post" action="/song-request">
<label for="song-url">歌曲链接:</label>
<input type="text" id="song-url" name="song-url" required><br><br>
<label for="requester-name">点歌人:</label>
<input type="text" id="requester-name" name="requester-name" required><br><br>
<label for="recipient-name">被点歌人:</label>
<input type="text" id="recipient-name" name="recipient-name" required><br><br>
<label for="message">留言:</label>
<textarea id="message" name="message"></textarea><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
在`templates/confirm.html`中,我们显示用户输入的歌曲信息,并提供一个“确认”按钮,允许用户确认提交:
```html
<!DOCTYPE html>
<html>
<head>
<title>确认点歌</title>
</head>
<body>
<h1>确认点歌</h1>
<img src="{{ song_image }}" alt="{{ song_title }}">
<p>歌名:{{ song_title }}</p>
<p>歌手:{{ song_artist }}</p>
<p>点歌人:{{ requester_name }}</p>
<p>被点歌人:{{ recipient_name }}</p>
<p>留言:{{ message }}</p>
<form method="post" action="/song-request-confirm">
<input type="submit" value="确认">
</form>
</body>
</html>
```
现在,我们可以运行`app.py`,并访问`http://localhost:5000/song-request`以查看点歌页面。输入歌曲链接、点歌人信息、被点歌人信息以及留言,并点击“提交”按钮。确认页面将显示用户输入的歌曲信息和提交按钮。如果用户点击“确认”按钮,则将显示一个弹窗,表示提交成功。
阅读全文