用VS code制作一个可以生成词云图的网页要求网页标题为词云生成器界面居中,可以上传文件,可以自定义词云图形状,有开始生成词云图按钮有词云图展示框的网页展示的词云图要大
时间: 2024-04-30 17:25:19 浏览: 172
好的,我可以给您提供一些思路和代码示例。
首先,您需要安装一些必要的库,如`flask`和`wordcloud`。可以使用以下命令进行安装:
```
pip install flask
pip install wordcloud
```
接下来,您需要创建一个 Flask 应用程序,并在其中编写代码来处理用户上传的文件和生成词云图。以下是一个简单的示例:
```python
from flask import Flask, render_template, request, redirect, url_for
from wordcloud import WordCloud
import os
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/', methods=['POST'])
def upload_file():
file = request.files['file']
filename = file.filename
file.save(os.path.join('uploads', filename))
return redirect(url_for('generate_wordcloud', filename=filename))
@app.route('/generate_wordcloud/<filename>')
def generate_wordcloud(filename):
mask = request.args.get('mask')
if mask:
mask = os.path.join('static', 'masks', mask)
else:
mask = None
text = open(os.path.join('uploads', filename)).read()
wc = WordCloud(background_color='white', mask=mask, width=800, height=600).generate(text)
wc.to_file(os.path.join('static', 'wordclouds', filename + '.png'))
return render_template('wordcloud.html', filename=filename)
if __name__ == '__main__':
app.run(debug=True)
```
在上面的代码中,`index` 函数渲染了一个名为 `index.html` 的模板,该模板包含一个上传文件的表单。`upload_file` 函数处理用户上传的文件,并将其保存在名为 `uploads` 的文件夹中。接下来,它将重定向到 `generate_wordcloud` 函数,该函数根据上传的文件生成词云图。如果用户指定了词云图形状,则使用指定的形状。最后,`generate_wordcloud` 函数渲染了一个名为 `wordcloud.html` 的模板,该模板显示生成的词云图。
现在,我们需要编写两个模板文件:`index.html` 和 `wordcloud.html`。以下是这些模板的示例:
`index.html`:
```html
<!DOCTYPE html>
<html>
<head>
<title>词云生成器</title>
<meta charset="utf-8">
</head>
<body>
<h1 style="text-align:center;">词云生成器</h1>
<form action="/" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br><br>
<label for="mask">选择词云图形状:</label>
<select name="mask" id="mask">
<option value="">无</option>
<option value="heart.png">心形</option>
<option value="star.png">星形</option>
</select><br><br>
<input type="submit" value="开始生成词云图">
</form>
</body>
</html>
```
`wordcloud.html`:
```html
<!DOCTYPE html>
<html>
<head>
<title>词云图展示</title>
<meta charset="utf-8">
</head>
<body>
<h1 style="text-align:center;">词云图展示</h1>
<img src="{{ url_for('static', filename='wordclouds/' + filename + '.png') }}" alt="词云图">
</body>
</html>
```
在上面的代码中,`index.html` 包含一个表单,用户可以使用该表单上传文件并选择词云图形状。`wordcloud.html` 显示生成的词云图。
最后,在项目文件夹中创建一个名为 `static` 的文件夹,并在其中创建两个文件夹:`uploads` 和 `wordclouds`。将 `heart.png` 和 `star.png` 图片放入 `static/masks` 文件夹中。
现在,您可以运行应用程序并通过浏览器访问它。在浏览器中输入 `http://localhost:5000`,即可访问网站界面,上传文件并开始生成词云图。
阅读全文