【问题标题】:Storage data from HTML Form as a variable and print it in the html table (Python Flask?) [duplicate]将 HTML 表单中的数据存储为变量并将其打印在 html 表中(Python Flask?)[重复]
【发布时间】:2020-04-07 22:06:40
【问题描述】:

这就是我想要做的:

  • HTML 中的静态网站(只是一个简单的表格)Screenshot Here
  • 管理页面通过 html 更新该网站上的文本(我不确定这是否是个好主意)Another Screenshot

我在 Python Flask 中尝试过,但我不知道如何将 HTML 表单中的数据存储到 Python 变量中。我所做的只是在我的 index.html(first ss) 中使用{{ }},然后我可以直接从 Python 代码编辑内容,但这不是我想要的。

我想要什么? 我想制作一个表格或类似的东西,允许用户轻松更新索引上的文本(第一个 ss)。 用户必须选择他要更新的单元格并编写新内容,然后提交,仅此而已。

Python Flask 是个好主意吗? (我对 Python 很陌生) 目前我正在使用 Wordpress+PostGrid 插件来做类似的事情,但是编辑网格(第一个 ss)太难了。 我很固执,所以我想自己做。

任何关于我应该使用的方法或语言的建议都会非常有帮助。

谢谢!

【问题讨论】:

    标签: python html forms flask


    【解决方案1】:

    由于您不想呈现表格网站的模板,而是更改 HTML 文件本身,所以我有以下建议:

    设置一个 Flask 应用程序来接收您的请求,例如在update 路由上 (/update)。

    让您的管理网站使用form 发布到您的update 路由。确保为您的selectinput 标签提供name 属性。例如:

    <form action="{{url_for('update')}}" method="post">
      <select name="element">
        <option value="imptitle">imptitle</option>
        <option value="zaktitle">zaktitle</option>
      </select>
      <input type="text" name="new_value"> 
      <input type="submit" value="Update">
    </form>
    

    在您的 Flask 应用程序中,您可以使用 request.form 从请求中提取信息,使用您在 selectinput 标签中指定的相同名称,例如:

    @app.route('/update', methods=['POST'])
    def update():
        element = request.form['element']
        new_value = request.form['new_value']
    

    然后替换表格 HTML 中的元素值:打开表格 HTML 文件,读取其内容,搜索元素并使用正则表达式替换其值(您可以阅读如何做到这一点here),覆盖具有更新内容的文件的内容。例如:

    with open('index.html', 'r') as f:
        content = f.read()
    
    # new_content = ... (do your search and replace here)
    
    with open('index.html', 'w') as f:
        f.write(new_content)
    

    【讨论】:

    • 您好,非常感谢您的帮助,我是这样做的:
    • 已经完成了吗:) 但是我还有一个问题,如果我从列表中选择(例如“imptitle1”),是否可以准备将​​显示实际打印内容的区域?
    • 我不确定我是否正确理解了您的问题。您想在浏览器的表单中显示默认值吗?
    • 不,不,不。我用&lt;a name="imptitle1"&gt;VALUE&lt;/a&gt; 标记了单元格值。当我在管理页面上并从列表中选择 Imptitle1 时,我想显示
    • 如果发送了 GET 请求,您可以创建另一个返回元素当前值的路由;通过读取表格 HTML 文件并再次通过正则表达式搜索来确定当前值。当然,您的前端必须发送请求并相应地处理响应。
    猜你喜欢
    • 2013-10-08
    • 2017-11-29
    • 2011-01-28
    • 1970-01-01
    • 2019-04-27
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多