如何使用 pdb 调试烧瓶-restful api

How to debug a flask-restful api with pdb

我想使用 pdb 进入一些 flask-restful 代码。我有一个 returns 令牌的端点。然后我使用令牌访问另一个端点,其中 returns 所需的数据。我想查看数据库查询的结果。我该怎么做?

我尝试在 class 中设置断点,但是当我使用请求库发送请求时它没有被触发。

class FetchData(Resource):

    @jwt_required
    def get(self, args):

        engine = create_engine('mysql+pymysql://')
        conn = engine.connect()

        tablemeta = MetaData()
        tablemeta.reflect(bind=engine)

        keydate = tablemeta.tables['KEYDATE']
        coefficient = tablemeta.tables['COEFFICIENT']
        vessel = tablemeta.tables['VESSEL']
        update_dict = {}


        s = select([coefficient])
        s = s.where(coefficient.c.updated_date >= args["dt"])
        rp = conn.execute(s)

        result = []

        for r in rp:
            j = coefficient.join(vessel, r['idvessel'] == vessel.c.idvessel)

            import pdb
            pdb.set_trace()
            vdm_id = select([vessel.c.vessel_id]).select_from(j)
            vdm_id = conn.execute(vdm_id).scalar()

            intermediate = []
            intermediate.append({"vdm_id": vdm_id})
            intermediate.append([dict(r)])

            result.append(intermediate)

或者我应该使用另一个调试器?

你应该把你的 pdb 放在循环之前,因为如果你没有得到任何结果,它永远不会到达 pdb

过去几年我一直在 flask 使用 pdb,没有任何问题。

只需使用 print(variable-you-want),这样应该会更快更高效。