【问题标题】:How do I clear out user input after each use on pythonanywhere- trying to use Flask sessions每次在 pythonanywhere 上使用后如何清除用户输入-尝试使用 Flask 会话
【发布时间】:2021-06-06 00:45:06
【问题描述】:

我正在尝试构建一个简单的站点,用户在其中输入一段信息(每次的格式大致相同),然后我有一个函数可以更改该段落以简化它(下面的 simple_report 函数),并且吐出简化版供用户使用。

到目前为止,下面的程序运行良好,我对此非常满意。但是,我正在使用 pythonanywhere 并且“cmets”变量是全局变量,因此当我重新加载页面时它不会删除简化报告(它们只是建立起来的)。我已经查看了 Flask 的会话选项,但我似乎无法弄清楚它是否可以与以下程序一起使用(我看到的所有示例都是用于用户登录,我只需要该站点每次重新加载时都要清理/清除)。

或者,我是否可以至少添加一个用户可以按下的按钮来清除旧的输出/cmets?我该怎么办?

感谢您的帮助!

#From the main file:

from flask import Flask, render_template, request, url_for, redirect
from run import simplify_report

app = Flask(__name__, template_folder="templates")

comments =[]

app.config["DEBUG"] = True

@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "GET":
        return render_template("page.html", comments=comments)
    newreport = simplify_report(request.form["contents"])
    comments.append(newreport)
    return redirect(url_for('index'))


#Relevant section from my page.html file:
{% for comment in comments %}
            <div class="row">
                {{ comment }}
            </div>
            {% endfor %}

作为旁注,我生成的“新报告”全部混杂在一行中,我似乎无法弄清楚如何格式化它以将其分成不同的不同行。不过,这不是我的主要问题。

【问题讨论】:

    标签: python flask session session-variables pythonanywhere


    【解决方案1】:

    您需要将数据存储在 PythonAnywhere 上的 Web 应用程序之外。考虑为此使用数据库。内存中的数据没有持久性,因为为您的 Web 应用程序服务的进程可能随时在不同的服务器上停止和启动。

    【讨论】:

    • 所以问题是网络应用程序正在页面重新加载之间保存数据,我不希望它这样做。我希望每次重新加载页面时用户的输入都消失。
    • 要使用会话,只需在生成 cmets 时将用户的 cmets 存储在他们的会话中,然后在索引代码的 GET 部分中检索它们以显示给用户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多