Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask GET-检索URL中数量未知的参数_Python_Flask_Get_Parameter Passing_Url Parameters - Fatal编程技术网

Python Flask GET-检索URL中数量未知的参数

Python Flask GET-检索URL中数量未知的参数,python,flask,get,parameter-passing,url-parameters,Python,Flask,Get,Parameter Passing,Url Parameters,什么:我有一个Flask服务器,我想构建一个路由,并通过GET方法向其传递数量待定的参数 原因:我想让用户能够从日期选择器中选择几个日期,并将此列表提供给服务器,服务器将向我的数据库发出SQL请求,以检索与用户选择的日期对应的数据。将有数百个文件,我还将尽可能限制性能请求/响应的数量 我对Flask几乎没有经验,但足以处理以下路线: @app.route('/photos/year=&month=',methods=['GET']) 甚至: @app.route('/photos/',metho

什么:我有一个Flask服务器,我想构建一个路由,并通过GET方法向其传递数量待定的参数

原因:我想让用户能够从日期选择器中选择几个日期,并将此列表提供给服务器,服务器将向我的数据库发出SQL请求,以检索与用户选择的日期对应的数据。将有数百个文件,我还将尽可能限制性能请求/响应的数量

我对Flask几乎没有经验,但足以处理以下路线:

@app.route('/photos/year=&month=',methods=['GET'])

甚至:

@app.route('/photos/',methods=['GET'])

我有3个案例:

  • 用户可以选择日期间隔,在这种情况下,我将使用类似于'/photos/\uuuuu>到'的路径(没有空格)

  • 或者一个单一日期,在这种情况下,我会使用类似'/photos/'

  • 或者多个日期不一定是连续的,我不知道如何处理,但我会这样做:'/photos/?…'“?”:表示可选参数;“…”:表示数量不确定的参数,就像在编程语言中一样(如果存在类似“…”的语法,实际上这就足够了:“/photos/…”

  • 我一直在寻找答案,但找不到任何东西。唯一有趣的事情可能是传递JSON对象,但我不知道如何处理这个问题,我将一直关注它,直到得到答案。如果有帮助,我还将关注Flask RESTful扩展


    如果有任何帮助,我们将不胜感激。

    我认为三个用例不需要单独的路由。您可能希望有一个单独的GET路由和接收日期作为url参数

    在这种情况下,您的烧瓶路线将变为:

    @app.route('/photos', methods=['GET'])
    
    您现在可以将url中的任何键值对作为

    /photos?date1=1&date2=2
    
    您可以使用访问这些参数

    from flask import request
    date1 = request.args.get('date1')
    date2 = request.args.get('date2')
    
    如果您想要一个日期列表,只需使用URL中的相同键发送它们,然后使用

    request.args.getlist(<paramname>)
    
    request.args.getlist()
    
    但是,由于在您的情况下,作为参数提供的密钥可能因请求而异,请仔细检查您尝试使用的密钥是否存在于所提供的请求中。我建议您查看请求对象的详细信息


    但是,如果你的参数比较复杂,你可以考虑使用JSON对象作为有效负载而不是URL PARAMS。

    谢谢你的回答@企鹅2048,它对我帮助很大。你知道通过一个烧瓶服务器发送多个文件的解决方案吗?我只知道“sEndIX文件”。方法,该方法可以返回单个文件,也可以返回zip文件方法,但我要做的是在我的Ionic应用程序中编写的特定模板中向用户显示多张照片。在这种情况下,我可能必须为每张照片指定一个请求…否则我可以使用render_模板方法显示我的照片(这样行吗?),但我将无法使用我的Ionic应用程序中的元素,这是必需的。通过flask server发送照片进行渲染不是一个好办法。您通常希望返回图像的URL(存储在云上)并直接在客户端加载它们。