烧瓶URL变量类型无?

use*_*239 3 python flask

我正在尝试通过URL传递数字并在另一页上检索它。如果我尝试指定变量类型,则会收到格式错误的URL错误,并且不会编译。如果我不指定var类型,它将运行,但是变量变为Type None。我也不能将其转换为int。我怎样才能将其作为整数...?提前致谢。

这给我一个格式错误的URL错误:

@app.route('/iLike/<int: num>', methods=['GET','POST'])
def single2(num):
Run Code Online (Sandbox Code Playgroud)

这可以运行,但是给了我一个我不能使用的类型变量:

@app.route('/iLike/<num>', methods=['GET','POST'])
def single2(num):
     try:
        location = session.get('location')
        transType = session.get('transType')
        data = session.get('data')

        **num = request.args.get('num')**
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 5

您在此处混合路由参数和请求参数。

您在route中指定的参数是route参数,并且是声明变量route的一种方式。这些参数的值作为函数参数传递给route函数。因此,在您的情况下,对于您的<num>url部分,该值作为函数参数传递num

请求参数与路由无关,并作为GET参数传递到URL。您可以通过request对象访问它们。这就是你在做什么request.args.get()

完整的示例如下所示:

@app.route('/iLike/<int:num>')
def single2(num):
    print(num, request.args.get('num'))
Run Code Online (Sandbox Code Playgroud)

/iLike/123现在打开将导致123 None。request参数为空,因为您未指定。您可以通过打开做到这一点/iLike/123?num=456,这将导致123 456