【问题标题】:Flask has a same funtion like spring @RequestMapping paramsFlask 与 spring @RequestMapping params 具有相同的功能
【发布时间】:2022-01-08 16:52:34
【问题描述】:

大家好,我只是在寻找 Flask 的功能。

我想要做的是使用像 Spring @RequestMapping EXAMPLE 这样的查询参数来分支控制器

我希望 Flask Controller 在存在特定参数时工作。 Flask 中是否存在这些功能?

我不想在方法中使用 if 语句进行分支

我不想这样。

from flask import request

@app.route('/user')
def user():
    actions = request.args.get('actions')
    if actions == "migration"
       pass
    if actions == "something"
       pass
     ....

我想要这个

@app.route('/user', params={"actions=migration"})
def user_migration():
    pass

@app.route('/user', params={"actions=something"})
def user_something():
    pass

【问题讨论】:

    标签: flask flask-restful


    【解决方案1】:

    您可以在“控制器”本身中添加该逻辑,如下所示:

    from flask import request
    
    @app.route('/home/fetch')
    def data():
        # here we want to get the value of user (i.e. ?personId=some-value)
        personId = request.args.get('personId')
        if personId == <your-value-here>
    
    

    如果您知道您的参数将始终是什么,那么为什么不将其设置为路线本身:

    @app.route('/user/migration')
    def user_migration():
        pass
    
    @app.route('/user/something')
    def user_something():
        pass
    

    【讨论】:

    • 这不能满足您的需求吗?
    • 不可以,但我不想在一个控制器中做很多 if 语句
    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2019-06-01
    相关资源
    最近更新 更多