Flask - 获取值

2023-12-24

我想从用户在搜索框中输入的内容中获取“名称”和“大小”值。

但明显的问题是我正在尝试get值来自于method: "POST"html 形式。 我的 html 操作仅引用{{ url_for('main') }}html 不是想要在 {{ url_for('search') }} html 中检索这些值的地方。

以下是模板:

import sqlite3
from flask import Flask,render_template, url_for, redirect, request


app = Flask(__name__)
conn = sqlite3.connect('shoes.db', check_same_thread=False)
c = conn.cursor()

@app.route("/", methods=["GET", "POST"])
def main():

    if request.method == 'GET':
        return render_template('main.html')

    elif request.method == 'POST':
        name = request.form.get('name')
        size = request.form.get('size')
        return redirect(url_for('search'))


@app.route("/search/", methods=["GET", "POST"])
def search():

    # Need to get the 'name' and 'search' values from input, so this way is incorrect.
    name = request.args.get("name") 
    size = request.args.get("size")     

    c.execute("SELECT * FROM shoes WHERE name LIKE ? AND sizes LIKE ? ORDER BY price",
                    ('%'+name+'%','%'+size+'%'))

    p = c.fetchall()

    url = [p[i][0] for i in range(len(p))]
    names = [p[i][1] for i in range(len(p))]
    prices = [p[i][2] for i in range(len(p))]
    sizes = [p[i][3] for i in range(len(p))]
    shoe_type = [p[i][4] for i in range(len(p))]

    return render_template('search.html' , url=url, names=names, prices=prices,
                           sizes=sizes, shoe_type=shoe_type)


if __name__ == '__main__':
    app.run(debug=True)

主要.html:

{% extends "layout.html" %}
{% block content %}

<form action = "{{ url_for('main') }}" class="form" method = "POST" >

        <h1>Soccer Shoes Finder</h1>
        <div class="line-separator"></div>

            <div class="container-fluid">
                <input name = "name" type="text" placeholder="Name"/>
                <input name = "size" type="text" placeholder="Size"/>
                <button class="glyphicon glyphicon-search" aria-hidden="true"></button>
            </div>

</form>

{% endblock %}

搜索.html:

{% extends "layout.html" %}
{% block content %}


    <div class= "container">
    <h2>Results:</h2>
    <table class="table table-striped">
    <thead>
    <tr>
        <th>url</th>
        <th>Name</th>
        <th>Prices</th>
        <th>Sizes</th>
        <th>Shoe Type</th>
    </tr>
    </thead>
    <tbody>
    {% for i in range(url|length) %}
    <tr>
        <td><a href={{url[i]}}>aa</td>
        <td>{{names[i]}}</td>
        <td>${{prices[i]}}</td>
        <td>{{sizes[i]}}</td>
        <td>{{shoe_type[i]}}</td>
    </tr>
    {% endfor %}
    </tbody>
    </table>
    </div>
{% endblock %}

有人知道我怎样才能实现这个目标吗?希望我说的有道理。谢谢。


简化你的主要路线,似乎没有理由在这里发布数据:

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

POST数据而不是直接发送到您的search通过在您的端点中更改此行主要.html金贾模板:

<form action="{{ url_for('search') }}" class="form" method="POST">

由于此页面渲染依赖于表单数据,我只是将其设置为仅接受 POST 方法,但这取决于您。您需要使用访问此处的值申请表 http://flask.pocoo.org/docs/0.12/api/#flask.Request.form (or 请求值 http://flask.pocoo.org/docs/0.12/api/#flask.Request.values如果您还想支持查询字符串GET method).

@app.route("/search/", methods=["POST"])
def search():
    name = request.form.get("name") 
    size = request.form.get("size")

假设您的数据库代码可以正常工作,其余部分应该按预期工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask - 获取值 的相关文章

随机推荐

  • 循环 db intmap(person)

    example type person name string age int db person intmap person 我知道如何从数据库中获取一个人 但如何获取全部人呢 并将它们打印在 html 表中 Thx 这应该可以做到 my
  • 带边框图像的 Div

    设置一个容器 div 周围有一些边框图像 在我的例子中仅在左侧 底部和右侧 的好方法是什么 我把它放在页面顶部的中心 与其他所有内容重叠 就像 OSX 风格的下拉对话框一样 这是基本布局 这是我到目前为止所得到的 我可以避免内容的静态宽度
  • 调试量角器时 Intellij Idea 挂起

    我遇到了类似于中提到的问题这个问题 https stackoverflow com questions 22082195 cant debug protractor in webstorm it just hangs 我正在尝试在 Inte
  • .-main 表达式的含义

    这个表达的意思是什么 main 在以下情况下 size main main 这里 点 意思是 当前位置 Then main将是到 main 开始的距离 如果放在 main 的末尾 它也将是size主要的
  • 为什么我的排序实现中出现 NullPointerException?

    我正在做我的作业 我想为我的数组创建一个排序方法 但是 我在排序方法中遇到空指针错误 我不确定为什么 这是我下面的代码 public Object sorted getSetArray Arrays sort setArray return
  • 部署期间 CLR 存储过程的架构

    我对配置 Visual Studio 2010 感兴趣 以便在部署 C CLR 数据库项目时 它将内容放入 DBO 以外的架构中 我知道我可以更新它手动创建的函数 过程 等等包装器来实现这一点 CLR 存储过程 如何设置架构 所有者 htt
  • Haskell cabal 中的基础依赖冲突

    出现了一个问题 阴谋集团的base与依赖项冲突 cabal文件 看来我的base版本太高了 有办法降级吗base软件包版本在cabal sandbox Resolving dependencies cabal Could not resol
  • Discord JS - 获取 dm 机器人的用户的昵称

    当用户 dm 是机器人时 我想获取与机器人位于同一服务器中的用户的服务器昵称 我尝试过 message author guild members get message author id displayName 和 message aut
  • 仅在升级到角度 15 后,路由器 getCurrentNavigation 始终返回 null

    这个问题是升级到Angular 15后才出现的 我正在将状态属性传递给路由器 但 this router getCurrentNavigation 返回一个空值 该值已通过router navigate在另一个组件中 A组份 组分B 我可以
  • 如何将 VSS 2005 迁移到 TFS 2015?

    我们使用 VSS 2005 现在我们有 TFS 2015 如何将所有数据从 VSS 迁移到 TFS 2015 以便保留历史记录 我看到有一个指南 但它是针对 TFS 2008 的 微软表示它可能已经过时 那么是否有更新的指南或一些演练 20
  • SoA/AoS 内存布局的 C++ 零成本抽象

    假设我有一个使用结构数组 AoS 内存布局的大型代码 我想用 C 构建一个零成本抽象 它允许我以尽可能少的重构工作在 AoS 和 SoA 之间切换 例如 采用具有访问成员函数的类 struct Item auto myDouble retu
  • Powershell 和 Regex:如何替换命名部分内的 INI 名称、值对?

    我正在 PowerShell v 2 0 中处理 INI 文件 我想改变现有的名称 值在混凝土部分内配对 举例来说 我想设置颜色 蓝色对于部分 Sky 不改变里面相同的名称 值对 Home 部分 我有正则表达式来获取我想要更改的完整部分 天
  • 将插件安装到 Visual Studio Cordova 项目

    我有一个新的空白科尔多瓦项目 我想在其中安装一个插件 http plugreg com plugin EddyVerbruggen LaunchMyApp PhoneGap Plugin http plugreg com plugin Ed
  • 我预计系统会报告不符合协议的情况,但事实并非如此!为什么?

    我使用的是 Xcode 版本 11 3 1 11C504 我正在尝试在 Swift 中创建一个通用函数 它将拒绝它的 参数 除非这样的参数是可选的 在下面的代码中 我是期待报告系统errors在所有呼叫中onlyCallableByAnOp
  • 部署到真实设备时出现问题:用于签署可执行文件的身份不再有效[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 How to solve this problem please help 更详细的请看这张图 细节图 http lh4 ggpht com
  • 如何清理用于幂等 Spring 集成模式的元数据存储

    我在 Spring 集成流程中使用幂等接收器模式来检测重复消息 https docs spring io spring integration docs 5 0 5 RELEASE reference html system managem
  • 调整 Jersey 在 AppEngine 上的加载时间

    我的应用程序服务无法启动或响应甚至预热请求 因为 Jersey 扫描库所花费的时间过长 我已经创建了应用程序并对球衣资源的所有路径进行了硬编码
  • ElasticSearch Java 高级 REST 客户端 - 单例还是每个用户一个实例?

    我计划在我们的应用程序中使用 Java REST 客户端 我们的应用程序是在 Tomcat 上运行的 Java RESTful 应用程序 每秒我们会有大量来自不同用户的 ElasticSearch 搜索请求 最佳实践是什么 创建单例并在应用
  • sqlalchemy.orm.exc.UnmappedInstanceError:类“builtins.dict”未映射

    我正在尝试使用 SQLAlchemy 和 Marshmallow 将新用户插入数据库 这user参数是从 API 端点接收的 一切正常 直到我到达这一行create功能 db session add new user 的价值new user
  • Flask - 获取值

    我想从用户在搜索框中输入的内容中获取 名称 和 大小 值 但明显的问题是我正在尝试get值来自于method POST html 形式 我的 html 操作仅引用 url for main html 不是想要在 url for search