如何使用PDB调试Flask-restful API

时间:2019-05-15 09:40:48

标签: python flask flask-restful pdb

我想使用pdb进入一些烧瓶相关的代码。我有一个返回令牌的端点。然后,我使用令牌访问另一个端点,该端点返回所需的数据。我想查看数据库查询的结果。我该怎么办?

我尝试在类中设置一个断点,但是当我使用请求库发送请求时,不会触发该断点。

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)

也许我应该使用另一个调试器?

2 个答案:

答案 0 :(得分:1)

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

最近几年,我在pdb中使用flask时没有任何问题。

答案 1 :(得分:0)

只需使用print(want-you-want),它应该更快,更有效。