You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask网页中获取用户输入并运行自定义Python脚本?

看起来你已经搭好了Flask的基础框架,接下来要实现“用户输入→传入Python脚本→返回结果”的流程其实很直观,我给你一步步拆解:

第一步:创建前端表单模板

在你的项目根目录下新建一个templates文件夹(Flask默认会读取这个目录里的模板文件),然后创建index.html文件,用来展示输入表单和结果:

<!DOCTYPE html>
<html>
<head>
    <title>我的查询工具</title>
</head>
<body>
    <h1>请输入查询内容</h1>
    <!-- 表单用POST方法提交到当前路由 -->
    <form method="POST">
        <input type="text" name="user_input" placeholder="在这里输入内容..." required style="padding:8px; width:300px;">
        <button type="submit" style="padding:8px 16px;">执行查询</button>
    </form>

    <!-- 如果有执行结果就展示出来 -->
    {% if result %}
        <div style="margin-top:20px;">
            <h2>执行结果:</h2>
            <pre style="background:#f5f5f5; padding:10px; border-radius:4px;">{{ result }}</pre>
        </div>
    {% endif %}
</body>
</html>

第二步:修改Flask路由,处理用户输入

接下来调整你的Flask主代码,添加一个支持GET/POST方法的路由,用来渲染表单、接收输入并调用你的脚本逻辑:

from flask import Flask, render_template, redirect, request, url_for
import json
import connect
import requests
from elasticsearch import Elasticsearch

app = Flask(__name__)

def elastic_search(text):
    # 保留你原来的elastic_search实现逻辑
    es = Elasticsearch(['10.0.0.9:9200', '10....'])
    # 比如你的查询代码:
    # res = es.search(index="your_index", query={"match": {"content": text}})
    # return res

@app.route('/', methods=['GET', 'POST'])
def index():
    result = None
    if request.method == 'POST':
        # 从表单中获取用户输入的内容
        user_input = request.form.get('user_input', '').strip()
        if user_input:
            try:
                # 调用你的Python脚本函数(这里以elastic_search为例)
                script_result = elastic_search(user_input)
                # 将结果转为格式化的JSON字符串,方便页面展示
                result = json.dumps(script_result, indent=2, ensure_ascii=False)
            except Exception as e:
                # 捕获执行异常,返回错误信息给用户
                result = f"脚本执行出错: {str(e)}"
    # 渲染页面并传递结果
    return render_template('index.html', result=result)

if __name__ == '__main__':
    app.run(debug=True)  # 开发环境用调试模式,修改代码会自动重启

第三步:测试运行

现在启动你的Flask应用,访问http://localhost:5000就能看到输入界面了。输入内容提交后,Flask会把输入传给你的elastic_search函数执行,最终将结果展示在页面上。

额外小提示

  • 如果你的核心逻辑在单独的脚本文件里(比如connect.py),直接导入并调用对应函数即可,比如connect.your_function(user_input)。
  • 调试模式debug=True仅限开发阶段使用,上线部署时一定要关闭。
  • 如果需要支持多行文本输入,可以把表单的input换成textarea控件;如果要处理文件上传,可使用request.files获取文件内容。

内容的提问来源于stack exchange,提问作者point5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:20:50