python写的词图云在flask网页显示代码
时间: 2024-09-16 11:01:35 浏览: 27
在Flask框架中展示Python编写的词云,你可以通过以下几个步骤:
1. 首先,你需要安装一些必要的库,如`jieba`用于分词,`wordcloud`生成词云,以及`Flask`本身。可以使用以下命令安装:
```
pip install jieba wordcloud Flask
```
2. 导入所需的模块并创建一个简单的Flask应用:
```python
from flask import Flask, render_template, request
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/generate_wordcloud', methods=['POST'])
def generate_wordcloud():
text = request.form.get('text_input')
# 使用jieba进行分词
words = ' '.join(jieba.cut(text))
# 创建词云
wc = WordCloud(font_path='simhei.ttf') # 如果需要特定字体,指定路径
wc.generate(words)
# 显示词云图片
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
image_data = io.BytesIO()
plt.savefig(image_data, format='PNG')
image_data.seek(0)
img_base64 = base64.b64encode(image_data.getvalue()).decode('utf-8')
return img_base64
if __name__ == '__main__':
app.run(debug=True)
```
这里假设你有一个名为`templates`的文件夹,里面包含一个名为`index.html`的HTML模板,用户可以在其中输入文本。
`index.html`示例:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<title>Word Cloud</title>
</head>
<body>
<form method="post" action="/generate_wordcloud">
<textarea id="text_input" name="text_input" placeholder="请输入文本"></textarea>
<br><br>
<input type="submit" value="生成词云">
</form>
{% if img %}
<img src="{{ url_for('static', filename='wordcloud.png') }}" alt="词云图" />
{% endif %}
</body>
</html>
```
当用户提交表单后,`generate_wordcloud`函数会被调用,生成词云并将其转换为Base64编码的图像返回到前端显示。