如何使用Flask实现Word文件的生成与指定路径存储?
Flask 文本输入与Word文件生成功能实现指引
前置依赖安装
首先安装所需第三方库:pip install flask python-docx
步骤1:调整前端输入表单
将原有接收电影名称的表单替换为接收句子输入的控件,示例模板代码(存放在templates/index.html):
<form method="POST" action="/process"> <label>输入需要处理的句子:</label> <textarea name="user_sentence" rows="5" cols="60" required></textarea> <br> <button type="submit">提交处理</button> </form>
你也可以保留单行输入框,只要确保表单控件的name属性和后端获取参数的字段对应即可。
步骤2:后端逻辑实现
初始化配置
首先在项目根目录创建用于存储Word文件的文件夹,比如命名为word_output,后端代码中配置路径:
from flask import Flask, render_template, request from docx import Document import os from datetime import datetime app = Flask(__name__) # 配置Word文件存储路径 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) SAVE_FOLDER = os.path.join(BASE_DIR, 'word_output') # 自动创建存储文件夹(如果不存在) os.makedirs(SAVE_FOLDER, exist_ok=True)
路由处理逻辑
替换原有接收电影名的逻辑,新增生成Word存储的代码:
# 首页路由,返回输入表单 @app.route('/', methods=['GET']) def index(): return render_template('index.html') # 处理提交请求的路由 @app.route('/process', methods=['POST']) def process(): # 接收用户输入的句子 input_sentence = request.form.get('user_sentence', '').strip() if not input_sentence: return "输入内容不能为空,请返回重新输入" # 生成Word文件 doc = Document() # 写入句子内容到Word doc.add_paragraph(input_sentence) # 生成不重复的文件名,避免文件覆盖,可根据需求自定义命名规则 file_name = f"input_{datetime.now().strftime('%Y%m%d%H%M%S%f')}.docx" save_path = os.path.join(SAVE_FOLDER, file_name) doc.save(save_path) # 此处可以保留你原有后续业务逻辑,比如用输入的句子做其他计算返回结果 return f"处理完成,文件已成功存储" if __name__ == '__main__': app.run(debug=True)
注意事项
- 生产环境部署时请关闭
debug=True配置 - 可根据业务需求新增输入内容长度、格式校验逻辑
- 文件名命名规则可自行调整,比如加入用户标识、内容哈希值等
- 若需要支持用户下载生成的Word文件,可额外新增返回文件流的路由逻辑
内容的提问来源于stack exchange,提问作者RandallCloud
相关产品推荐
相关产品推荐

