python - 烧瓶应用程序路由中的可选参数以及必需参数
问题描述
我试图在 Flask 应用程序的一个路由中将一个可选参数与一个必需参数放在一起。但它不起作用。
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/route1/', defaults = {'optional_para': "None"}) # or keyword None
@app.route('/route1/<string:optional_para>/<string:required_para>')
def myfunction(optional_para, required_para):
if optional_para == "something":
# return this
else:
# return this
if __name__ == '__main__':
app.run(threaded=True, debug=True, use_reloader=False)
它给了我一些 jsondecode 错误和服务器上的 404。我想如果我只使用必需参数或可选参数中的一个来做同样的事情......那么代码就可以正常工作。我的工作需要我同时使用它们。请帮帮我。
解决方案
我认为,如果您使用request.args.get
以下示例中的其他参数来考虑其他参数,那将很容易
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/route1/<required_para>')
def myfunction(required_para):
optional_para=request.args.get('optional_para', 'somthing_else', type=str)
if optional_para == "something":
# return this
else:
# return this
if __name__ == '__main__':
app.run(threaded=True, debug=True, use_reloader=False)
您可以调用该函数以从其他视图函数返回
return redirect(url_for('myfunction',required_para='anything',optional_para='something'))
或通过html:
<a href="{{ url_for('myfunction',required_para='anything',optional_para='something')}}">
click me
</a>
或直接在网址中
http://hostname:prot/route1/'anything?optional_para='something'
推荐阅读
- reactjs - 从列表中删除一个项目 - React Js
- r - 如何在列表中使用 purrr::map() 和 inner_join
- ios - 在一个 UIViewController 中呈现不同模式的最佳方式是什么?
- django - 如何通过Django rest获取带有related_name的序列化器中的特定字段
- cobol - WRITE AFTER ADVANCING 后跟 WRITE 导致 2 行出现在第一行 - 为什么?
- html - HTML 电子邮件响应
- c++ - C++ 中聚合的带括号初始化的模板参数推导
- android - 汉堡图标在 Android Studio 中不起作用
- c# - 找不到类型或命名空间名称“ScriptName”(您是否缺少 using 指令或程序集引用?)修复统一 c#
- typescript - 限制泛型类型 (
(p:T)=>T,T只能是一些特定的类型)