Flask:如何将新创建的项目从创建路径传递到查看路径?

时间:2017-06-23 22:00:03

标签: flask sqlalchemy flask-sqlalchemy

我有一个模特:

class Item(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(80),unique=False)
    content = db.Column(db.String(80),unique=False)
    category = db.Column(db.String(80),unique=False)

    def __init__(self,title,content,category):
        self.title = title
        self.content = content
        self.category = category

    def __repr__(self):
        return '<Item %r>' % self.title

以及创建它们的路线:

@app.route('/create',methods=('GET','POST'))
def create():
    if request.method == 'POST':
        if request.form.get('title') and request.form.get('content'):
            item = Item(request.form['title'],request.form['content'],request.form['category'])
            flash('Item created successfully','success')
            db.session.add(item)
            db.session.commit()
            return redirect(url_for('view'),itemid=item.id)
        else:
            flash('Title and Content are required.','danger')
    form = ItemForm()
    return render_template('create.html',form=form)

正如您所看到的,如果用户发出了帖子请求,并且内容存在,则会创建项目并重定向到用于查看的URL,参数item.id为itemid。查看路线:

@app.route('/view/<itemid>')
def view(itemid):
    item = Item.query.filter_by(itemid)
    return render_template('view.html',item=item)

将itemid作为参数进行查询,以便我们通过重定向调用传递它!然而,烧瓶似乎没有得到这个部分。它说:

BuildError:无法为端点构建网址&#39; view&#39;。您是否忘记指定值[&#39; itemid&#39;]?

不,我没有忘记指定这些值。实际上我甚至尝试过硬编码。但它似乎并没有找到item.id作为itemid。我做错了什么?

0 个答案:

没有答案
相关问题