我正在尝试通过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)
您在此处混合路由参数和请求参数。
您在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。
| 归档时间: |
|
| 查看次数: |
1197 次 |
| 最近记录: |