首页 > 解决方案 > 将 HTML 表单中的数据存储为变量并将其打印在 html 表中(Python Flask?)

问题描述

所以这就是我想要做的:

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

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

这样做是 Python Flask 的好主意吗?(我是 Python 的新手)目前我正在使用 Wordpress+PostGrid 插件来做类似的事情,但是编辑网格(第一个 ss)非常困难。我很固执,这就是为什么我想对自己做这件事。

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

谢谢!

标签: pythonhtmlformsflask

解决方案


由于您不想呈现表格网站的模板,而是更改 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 文件,读取其内容,搜索元素并使用正则表达式替换其值(您可以在此处阅读如何执行操作),用更新的内容。例如:

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)

推荐阅读