【问题标题】:Taking user input from HTML form as a variable for Python script [duplicate]将来自 HTML 表单的用户输入作为 Python 脚本的变量 [重复]
【发布时间】:2019-08-22 17:10:43
【问题描述】:

我正在 Python/Flask 中创建一个 Web 应用程序,以使用 tweepy 的 twitters API 显示推文。我已经设置了一个 HTML 表单,并获得了使用特定输入查找推文的脚本,目前,这是硬编码的。我希望用户输入主题标签或类似标签,然后在提交时运行脚本,并将其作为参数

我创建了一个表单,方法是 GET,操作是运行脚本。

<form class="userinput" method="GET" action="Tweepy.py">
    <input type="text" placeholder="Search..">
    <button type="submit"></button>
</form>

我不知道如何获取用户输入并将其存储在变量中以用于 tweepy 代码,任何帮助将不胜感激

【问题讨论】:

  • action="Tweepy.py" 来看,您似乎并不了解 HTML 表单的工作原理。您需要有一个使用表单呈现 HTML 页面的网络服务器,然后将表单的内容提交回服务器(最好使用 POST,而不是 GET)到您的烧瓶应用程序中的预定义路由。 Flask 甚至有一个内置的方法来实现这一点(这可能有点矫枉过正,但它是一个很好的起点:flask.pocoo.org/docs/1.0/patterns/wtforms

标签: python flask tweepy


【解决方案1】:

templates/index.html

<form method="POST">
    <input name="variable">
    <input type="submit">
</form>

app.py

from flask import Flask, request, render_template
app = Flask(__name__)

@app.route('/')
def my_form():
    return render_template('index.html')

@app.route('/', methods=['POST'])
def my_form_post():
    variable = request.form['variable']
    return variable

【讨论】:

  • 感谢您的回答!我已将变量添加到我的 tweepy 代码中。我还创建了一个包含它的方法,我在`return variable`之前调用了该方法,但是它似乎没有做任何事情。 tweepy 代码旨在将其输出发送到数据库(确实如此)
  • 如果你在这里发布你的代码会更容易找到你的错误
  • @app.route('/results', methods=["POST"]) def my_form_post(): variable = request.form['variable'] tweepy() return variable
  • 看上面,我编辑了我的答案
【解决方案2】:

我猜你已经设置和端点来运行该脚本,一个映射到函数的 URL。在这种情况下,您需要从表单操作中调用它。

例如

@app.route('/my-function')
def your_function(parameters):
    "code to do something awesome"
    return "the result of your function"

因此,在您的表单中,您应该:

<form class="userinput" method="GET" action="/my-function">
    <input type="text" placeholder="Search..">
    <button type="submit"></button>
</form>

这应该可以解决问题。

更多示例请访问Flask home page

【讨论】:

    猜你喜欢
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2021-01-24
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    相关资源
    最近更新 更多