Python 将参数传递给Flask API方法

Python 将参数传递给Flask API方法,python,api,flask,parameters,Python,Api,Flask,Parameters,我对FlaskAPI非常陌生,所以我希望这将非常容易解决 我正在开发一个API(目前它只有一个端点,但一旦我实现了它的功能,就会有更多的端点)。我用swagger编辑器生成了我的API,并试图实现这些方法。我设法实现了一个GET方法,它不接受任何变量并返回一个json文件 我现在尝试的是将变量传递给这个方法来做一些事情 我的目录结构如下: swagger_server/ |---->__main__.py |---->controllers '-

我对FlaskAPI非常陌生,所以我希望这将非常容易解决

我正在开发一个API(目前它只有一个端点,但一旦我实现了它的功能,就会有更多的端点)。我用swagger编辑器生成了我的API,并试图实现这些方法。我设法实现了一个GET方法,它不接受任何变量并返回一个json文件

我现在尝试的是将变量传递给这个方法来做一些事情

我的目录结构如下:

swagger_server/
    |---->__main__.py
    |---->controllers
           '---->default_controller.py
我的
\uuuu main\uuuuu.py
文件(我删除了一些空行以缩短此问题):

我的
默认\u控制器.py

  1 import connexion
  2 import six
  3 import os
  4 import json
 60
 61 def get_supported_types(test):  # noqa: E501
 62     """Retrieve supported types for number test
 63     param:    test = id of supported type
 64     :rtype: InlineResponse200
 65     """
 66     print(test)
 70
 71     return 'blabla'
在没有参数的情况下,我可以通过curl接收数据,如下所示
curl-H'授权:0123'-H--trace ascii/tmp/dump.txt'http://127.0.0.1:3080/v1/supported_types'

我试图用
-H“test:15”
添加一个额外的标题,将其添加到URL
http://127.0.0.1:3080/v1/supported_types?test=15
(导致500服务器错误)和
http://127.0.0.1:3080/v1/supported_types/?test=15
(导致404未找到错误)

我还读了一些关于@app.route的文章,我试过了,但没有真正起作用:

@app.route("/v1/supported_types/", methods=['GET'])
NameError: name 'app' is not defined

有人能帮我把这个参数传给这个方法吗?

把变量的名称放在你将要使用的路由和方法上,然后你就可以处理了

@my_bp.route('/my_route/<int:id_report>')
def report(id_report=1):
    report = make_pdf(Report.query.get(id_report))
    return send_file(report, attachment_filename="My_Report.pdf", as_attachment=True )
@my_bp.route('/my_route/'))
def报告(id_报告=1):
report=make\u pdf(report.query.get(id\u report))
返回发送文件(报告,附件filename=“My\u report.pdf”,如附件=True)

我必须使用什么来代替我的bp?我试图放在那里的一切都产生了一个“NameError:name'default\u controller'未定义”我使用建议的蓝图,但您直接使用
app
,所以顺便说一下,应该是
@app.route('my\u route/'))
很遗憾,它没有(我收到了一个类似于我最初问题底部的NameError)知道如何修复它(我想这可能是因为我的目录结构,我希望保持不变)?你必须这样初始化你的应用:
from flask import flask app=flask(_name_;)
然后像下面这样初始化swagger的api:我建议您在使用任何库之前尝试使用flask制作rest api,因为它很简单,您将更好地理解库为您做了什么
@my_bp.route('/my_route/<int:id_report>')
def report(id_report=1):
    report = make_pdf(Report.query.get(id_report))
    return send_file(report, attachment_filename="My_Report.pdf", as_attachment=True )