【问题标题】:How can I pass an object as an url variable in flask? [duplicate]如何在烧瓶中将对象作为 url 变量传递? [复制]
【发布时间】:2017-12-05 05:16:45
【问题描述】:

我是 python 和 Flask 的新手。我目前正在做一个项目,我需要为不同的操作呈现不同的页面,但它们都需要访问同一个对象。

例如:

@app.route("/", methods =['GET','POST'])
def funtionA()
    objs = somefunction() // returns an object list
    render_template("/results/'+objs+'")

@app.route("/results/<objs>", methods =['GET','POST'])
def functionB(objs)
    for obj in objs
       print(objs[i].attr)

我可以将字符串、整数甚至路径作为参数传递。我找不到任何参考来查看传递对象是否可行。感谢您的回复!

谢谢, 迪帕克

【问题讨论】:

  • 您能否详细说明您需要从一个视图传递到另一个视图的数据?数据是否来自数据库?

标签: python flask


【解决方案1】:

您可以使用全局应用程序。可通过flask.g

访问

http://flask.pocoo.org/docs/0.12/api/#application-globals

Flask 为您提供了一个特殊对象,可确保它仅对活动请求有效,并且将为每个请求返回不同的值。

【讨论】:

    【解决方案2】:

    看起来你需要使用flask url_for

    @app.route("/", methods =['GET','POST'])
    def funtionA()
        objs = somefunction() // returns an object list
        return redirect(url_for('app.functionB', objs=objs))
    
    @app.route("/results/<objs>", methods =['GET','POST'])
    def functionB(objs)
        for obj in objs
           print(objs[i].attr)  
        return "something {}".format(objs)
    

    并不是说你查看函数应该总是返回一个响应

    这是解决您问题的方法之一,希望对您有所帮助

    【讨论】:

      猜你喜欢
      • 2018-04-08
      • 2020-12-21
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多