访问多个路由中的对象属性

时间:2014-10-20 23:40:08

标签: python oop flask

@app.route('/a',  methods=['GET', 'POST'])
def a():
    form = data(request.form)

    if form.validate_on_submit():
        job = Job()
        job.title = form.title.data

        return redirect(url_for('users.b'))


@app.route('/b',  methods=['GET', 'POST'])
def b():
    #access here the job.title previous defined

我知道我可以将参数传递给url_for,但不是我想要的。基本上访问以前定义的对象属性。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

HTTP是无状态连接,意味着从/ a重定向到/ b的用户只能通过HTTP标头,cookie和URL参数传递信息。

要解决此特定问题,您需要将job.title中的信息集保存到主机上的数据库中(即Using SQLAlchemy in Flask)。然后,您可以将新条目的数据库ID传递到/a中的url_for参数,以便使用此参数集将其重定向到某个URL。 (即/b?user_id=123)。请注意,您需要注意多个安全问题,因为用户可以自行更改ID。

有很多方法可以做到这一点。您可能希望使用Flask-WTF addon为您处理部分内容。

Here's some snippets处理Flask中的会话。