小编SS *_*hah的帖子

VSCode 和 FastAPI 调试 - 不会中断路由

刚刚开始使用 FastAPI,但在尝试让它识别 VSCode 调试器中的断点时遇到了问题。奇怪的是,它确实成功地打破了路线中未包含的线路

直接从教程中提取: https: //fastapi.tiangolo.com/tutorial/debugging/

import uvicorn
from fastapi import FastAPI

app = FastAPI()  # breakpoint here works on launching file
print('here')    # breakpoint here works on launching file


@app.get("/")
def root():
    a = "a"   # breakpoint here does NOT work
    b = "b" + a
    return {"hello world": b}  # returns data successfully


if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=5002)
Run Code Online (Sandbox Code Playgroud)

如上所述,路由外的线路工作正常,当我转到该地址时,我成功获取数据,但路由内的断点不会触发。不知道我在这里缺少什么。尝试过VSCode 中的 Debug FastAPI 应用程序的各种解决方案

我不确定这是否会产生影响,但这也是通过 VSCode 上的远程 SSH 扩展运行的(我的代码位于 gcloud 虚拟机上)。也许这有所贡献,但同样,其他断点也可以正常触发。

我的启动.json:

{
    // Use …
Run Code Online (Sandbox Code Playgroud)

python visual-studio-code vscode-debugger fastapi

5
推荐指数
1
解决办法
3042
查看次数

为嵌套字典分配值不适当地应用于所有键

本质上我正在尝试为嵌套字典分配一个值。如果我通过拼写出来来构建字典,那么稍后分配一个值将按预期工作。但是,如果我创建一个模板字典,将其分配给所有键,然后返回并尝试为嵌套键分配一个值,现在该键的每个实例都会获取该值。用代码更容易显示:

initialize_dict = {'a':0,'b':0}
x = {}
x['FOO'] = initialize_dict
x['BAR'] = initialize_dict

y = {'FOO':{'a':0,'b':0},'BAR':{'a':0,'b':0}}

logging.info("x is {}".format(x))
logging.info("y is {}".format(y))
logging.info(x==y)

x['FOO']['a']=13231
y['FOO']['a']=13231

logging.info("new x is {}".format(x))
logging.info("new y is {}".format(y))
Run Code Online (Sandbox Code Playgroud)

还有我的日志:

INFO:root:x is {'FOO': {'a': 0, 'b': 0}, 'BAR': {'a': 0, 'b': 0}}
INFO:root:y is {'FOO': {'a': 0, 'b': 0}, 'BAR': {'a': 0, 'b': 0}}
INFO:root:True
INFO:root:new x is {'FOO': {'a': 13231, 'b': 0}, 'BAR': {'a': 13231, 'b': 0}}
INFO:root:new y is {'FOO': {'a': 13231, 'b': 0}, …
Run Code Online (Sandbox Code Playgroud)

dictionary python-3.x

3
推荐指数
1
解决办法
841
查看次数