如何使路径/ name / int / float为可选。
因此,如果我这样做:http://localhost/Zeref/,即使未输入int或float仍然可以使用。
如果我这样做了,http://localhost/Zeref/1/只会做名字而不是浮点数。
那我该怎么做使它们成为可选的?
代码:
import flask
win = flask.Flask(__name__)
@win.route("/<name>/<int:ints>/<float:floats>")
def web(name, ints, floats):
return "Welcome Back: %s Your Int: %d Your Float: %f" % (name, ints, floats)
win.run("localhost", 80)
答案 0 :(得分:0)
Flask中允许使用可选参数。
您可以为同一功能定义多个规则。这是URL Route Registrations上的文档。
更新的代码:
import flask
win = flask.Flask(__name__)
@win.route('/<name>/', defaults={'ints': None, 'floats': None})
@win.route('/<name>/<int:ints>/', defaults={'floats': None})
@win.route("/<name>/<int:ints>/<float:floats>/")
def web(name, ints, floats):
if ints!=None and floats!=None:
return "Welcome Back: %s, Your Int: %d, Your Float: %f" % (name, ints, floats)
elif ints!=None and floats==None:
return "Welcome Back: %s, Your Int: %d" % (name, ints)
return "Welcome Back: %s" % (name)
win.run(debug=True)
当chrome或任何其他网络浏览器请求这些URL之一时,Flask将调用相关的函数以及URL中提供的参数。如果未提供或少于参数,则将使用参数的默认值。
屏幕截图:
三个参数:
两个参数:
一个参数:
答案 1 :(得分:0)
尝试这个
@win.route("/<name>/<int:ints>/<float:floats>")
def web(name, ints=None, floats=None):
if ints!=None and floats!=None:
return "Welcome Back: %s, Your Int: %d, Your Float: %f" % (name, ints, floats)
elif ints!=None and floats==None:
return "Welcome Back: %s, Your Int: %d" % (name, ints)
return "Welcome Back: %s" % (name)