【问题标题】:Get user input via for loop for python script in a Flask application在 Flask 应用程序中通过 for 循环为 python 脚本获取用户输入
【发布时间】:2020-09-02 09:03:04
【问题描述】:

我正在尝试为我拥有的 python 脚本创建一个非常简单的单页 Flask 应用程序。该脚本需要一个 for 循环中的多个用户输入,其中循环数也是用户输入。

这是我的脚本中的代码,以使其更清晰:

def shared_books():
    import requests as re
    from bs4 import BeautifulSoup
    import time

    num_lists = int(input('Enter the number of lists you would like to search:'))
    urls = []
    page_counts = []

    for i in range(num_lists):
        urls.append(input(f'Enter the url for list {i + 1}:'))
        page_counts.append(int(input(f'Enter the number of pages for list {i + 1}:')))

我想要一个简单的 HTML,它会询问用户列表的数量,然后是每个列表的 URL 和页数,如我的函数中所示。然后它将运行整个函数。

我现在拥有的 HTML 代码非常简单,除了输入部分之外我不需要太多其他内容:

<html>
    <head>
        <title>Goodreads-App</title>
    </head>
    <body>
        <h1>Welcome to my app!</h1>
        <<p>This app will allow you to see books that are
           shared between multiple lists on goodreads</p>
    </body>
</html>

请告诉我如何设置此应用程序!

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 你应该使用 http 请求与烧瓶交互,而不是输入!
  • @KlausD。还没有我不知道从哪里开始!
  • @CyrilJouve 好的,谢谢,我会考虑使用 HTTP 请求!我试了之后再报告
  • 我知道这是题外话,而且可笑的好两双鞋,但是 goodreads 有一个用于这类事情的 api,他们可能更愿意你使用它而不是网络抓取

标签: python flask


【解决方案1】:

首先,我建议你看看Flask docs。你在拥有一个视图函数方面做得很好,但是input() python 关键字在 Flask 中不能像那样工作。相反,您应该呈现一个 html 模板,然后您可以将表单输入字段放入其中。这是一个例子:

from flask import Flask, render_template

#flask initialising stuff, read docs for info

@app.route("/home")
def home():
    return render_template("home.html")

Flask 在您计算机的本地服务器“localhost”上运行,该服务器不可公开访问。它通常在端口 5000 上运行,其名称为“localhost:5000”。

当有人访问“localhost:5000/home”时,flask 会在预先指定的模板文件夹中寻找一个名为“home.html”的文件——默认是一个名为“templates”的目录,你应该把你的 html 文件放在里面进入。

如果这是你的“home.html”文件:

<html>
    <head>
        <title>Goodreads-App</title>
    </head>
    <body>
        <h1>Welcome to my app!</h1>
        <p>This app will allow you to see books that are
           shared between multiple lists on goodreads</p>
    </body>
</html>

当您加载与特定功能关联的页面时,它将返回一个呈现为 html 的模板。上面应该是这样的:

这就是开始的方式。

【讨论】:

    【解决方案2】:

    感谢您的回答!我还没有完全解决上一个问题,但已经从另一个角度解决了这个问题,现在正在工作!如果我不解决它,我可能会再次发布。

    我正在使用烧瓶形式来做我正在尝试的事情。

    【讨论】:

      猜你喜欢
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多