【问题标题】:how to pass value into html form in Bottle?如何在Bottle中将值传递给html表单?
【发布时间】:2014-08-19 11:06:20
【问题描述】:

我是 python 和 Bottle 的新手,但我正在尝试开发一个简单的 Web 应用程序,它将盘点公司收到的盒子中的物品。 使用 Bottle 我能够创建一个包含 2 个文本框和一个“保存”按钮的表单。我扫描框 ID 并进入文本框 1。然后我扫描项目 ID 并进入文本框 2。然后我点击保存按钮。 它可以工作……但是在我单击“保存”后,表单会重新加载,即它打开空白页面,我必须后退页面,从文本框 1 中删除内容并再次执行此操作,直到我切换到下一个以空开头的框盒子 1 和盒子 2 我的要求:我希望每次单击“保存”按钮时,它都会将数据提交到我的数据库中,但表单保持不变,即不会重新加载并且文本框 1 的内容为空。然后我可以扫描下一个项目,依此类推,直到我完成所有项目。 请问有人可以帮我吗? 下面是我的代码现在在 Bottle 模板中的样子:

<form action="/accession" method="GET">
      Scan Box: <input type="text" size="18" name="package"> &nbsp &nbsp &nbsp
      Scan Item:  <input type="text" size="13" name="sample">
<input type="submit" name="save"  value="Save" >

** 我稍微更改了表单,现在它的行为有所不同,即当我单击“保存”时,它停留在同一页面上(这没关系),但它清空了两个文本框的内容。 我只需要清除一个文本框,而另一个保留内容。我怎么能做到? 谢谢 ** 我注意到我可以将“值”属性与“文本”框一起使用.. 像这样:

Scan Box: <input type="text" value="123" name="package"> 

在我的例子中,值“123”应该是动态的。我的python脚本中确实有我想用“123”替换的值,但我不知道如何将它传递到表单中。 有人可以帮助我吗? 谢谢

【问题讨论】:

    标签: python html bottle


    【解决方案1】:

    您应该使用模板。这里是 the docs 用于 Bottle 的内置模板;我碰巧更喜欢Jinja2,但是一旦你掌握了这个概念,你就可以决定使用哪个。

    基本上,您将创建一个模板文件,该文件是您要返回的 html。它将包括以下内容:

    Scan Box: <input type="text" value="{package}" name="package">
    

    你的 Bottle 函数(你还没有发布,所以我在这里做个猜测)看起来像这样:

    @route('/myform')
    def submit():
        the_package = zzz  # get the value however your application chooses
        return template('form1', package=the_package)  # your template file is form1.tpl
    

    the_package 的值将自动替换为模板文件中出现 {package} 的位置。

    请尝试 Bottle 文档中的模板示例,如果您还有任何问题,请告诉我们。

    【讨论】:

    • 感谢您的帮助。听从你的建议,我现在一切就绪。
    • 很高兴听到这个消息! (如果我的回答解决了您的问题,那么请“接受”它。谢谢!)
    • 用嵌套在 .tpl 中的 javascript 阅读它怎么样? {{package}} 不起作用。
    • 也非常感谢我 - 我期待一些棘手的 Javascript/AJAX 恶作剧,但我从未想过将变量简单地提供给输入标签本身。天才。这打开了很多门 - 真的很感激!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2018-12-01
    • 2021-07-29
    • 2015-08-31
    • 1970-01-01
    相关资源
    最近更新 更多