我想在Flask应用中获取GET参数。我想检查一下这个参数是否为提交的整数。
我想出了下面的代码,但对我来说似乎很丑陋和单调。这种方式最蟒蛇的方式是什么?
@app.route('/')
def index():
page = request.args.get('page') or 0
try:
page = int(page)
except:
return abort(500)
答案 0 :(得分:3)
您可以告诉rails installer测试您的类型,并设置默认值:
request.args.get()
如果类型转换失败,则使用默认值。在网络环境中,很多更好的想法,而不是提出500响应(保留给服务器错误,而不提供有效的页码是真的是客户端错误)。
None
否则永远不会引发异常;如果没有设置其他默认值,则返回@app.route('/')
def index():
page_str = request.args.get('page', default=0)
try:
page = int(page_str)
except ValueError:
abort(400)
。如果必须在类型转换方面有例外情况,那么您的方法就会受到影响,但我会返回request.args.get()
method代替:
abort(...)
return
引发了异常,无需在那里使用def convert_or_400(value, type):
"""Convert a value to the given type, or raise a 400 client error"""
try:
return type(value)
except ValueError:
abort(400)
。因为引发了异常,所以可以将整个4行的块作为单独的函数:
@app.route('/')
def index():
page = convert_or_400(request.args.get('page', default=0), int)
现在路线变为:
{{1}}
答案 1 :(得分:-1)
def index():
page = input("enter the value")
try:
if (page != ""):
page = int(page)
else:
page = 0
print("Input value..",page)
except:
print("wrong value given.Input numeric value")
index()
一种简单的方法