我正在尝试构建一个应用程序(使用Flask),它基本上采用一种形式,向用户发送预览的表单内容,并在用户感觉良好时发布内容。 如果用户拒绝预览,她应该可以返回并编辑表单,其中包含原始数据。

基本上结构是

@app.route('/edit')
def edit():
    ...
    #return rendered page for form inputting
    #the form action triggers preview()
@app.route('/preview')
def preview():
    ...
    #return rendered page for preview
    #one button triggers publish()
    #one button redirect to edit() and send back the form information
@app.route('/publish')
def publish():
    ...
    #write content to database
    #redirect to view()
@app.route('/')
def view():
    ...
    #rendered page for viewing contents

问题是我应该如何来回传递内容。 我觉得我可以

  1. 在app.py中创建一个全局变量,并通过不同的函数进行更改
  2. 创建一个临时文件(txt或数据库等)来存储信息

我认为两者都有效,但它们是否足够好或有效? 这样做的专业方法是什么?

===============>>#1 票数:0

我不会采用全局方式,因为那时你的Flask应用程序将保持状态 ,因为信息现在包含在Flask进程中,并且只在其中可见。 因此,如果您碰巧产生了多个Web进程,您将获得不同版本的全局变量。 此外,如果该进程崩溃/重新启动,则信息全部消失。

您希望将其用于明确保持状态的内容 ,例如数据存储(例如RDBMS,NoSQL等),或者至少某种集中到所有Flask进程的“缓存”服务器。

您正在预览的内容将存储在数据存储区中,显示在表单上,​​并且在数据存储区中将具有某种ID(例如,RDBMS中的主键),您可以在Flask应用程序中传递该ID。

  ask by ssd translate from so

未解决问题?本站智能推荐: