Flask - UndefinedError:' restaurant_id'未定义

时间:2015-06-30 09:51:52

标签: python flask url-routing function

我尝试从此页面引用另一页

ivar

这是我管理路线的网络服务器:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  xmlns:ns0="http://schemas.microsoft.com/BizTalk/2003/aggschema"
  xmlns:ns1="http://BTS.GO.FactFeeds/DC_ArticleMaster"
  xmlns:ns2="http://Microsoft.LobServices.OracleDB/2007/03/USER_DWDEV/Table/DW_PACK_BARCODES">

我在这里尝试路由到我的创建餐厅页面:

ns0:Root/InputMessagePart_1/ns2:SelectResponse/ns2:SelectResult/ns2:DW_PACK_BARCODESRECORDSELECT

3 个答案:

答案 0 :(得分:0)

您不会在jinja模板中向restaurant_id发送任何内容:

{{url_for('newRestaurant', restaurant_id = restaurant_id)}}

未定义第二个restaurant_id,因为您没有通过它向模板发送任何值。

您应该从newRestaurant功能发送一个号码。

例如(这只是一个简单的示例),您可以验证餐厅表中是否没有行,如果不是,则启动restaurant_id = 1

<强> EDITED

@app.route('/restaurant/<int:restaurant_id>', methods = ['GET','POST'])
def newRestaurant(restaurant_id):
    if request.method == 'POST':
        .............
    else:
        restaurants = session.query(Restaurant).all()
        if not restaurants:
            restaurant_id = 1
        else:
            nr_restaurants = session.query(Restaurant).count()
            restaurant_id = int(nr_restaurants) + 1
        return render_template('newRestaurant.html', restaurant_id = restaurant_id)

现在您通过restaurant_id变量向模板发送了一个号码,您可以在那里使用它。

答案 1 :(得分:0)

我解决了这个问题,这就是

鉴于我所需要的只是创建一个新餐厅,我不需要在网址上捕获餐厅的ID。所以改为像这样路由

@ app.route('/ restaurant // new',methods = ['GET','POST'])

我删除了id部分并删除了def newRestaurant函数中的参数,如此

@ app.route('/ restaurant / new',methods = ['GET','POST'])

非常感谢大家,提供线索

答案 2 :(得分:0)

当我在restaurant_id=restaurant_id定义下添加deleteMenuItem时,它起作用了。

enter image description here