同步操作将从 Gitee 极速下载/FastAPI 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Security() and ...
from fastapi import Depends, FastAPI, Securityfrom fastapi.testclient import TestClientapp = FastAPI()counter_holder = {"counter": 0}async def dep_counter():counter_holder["counter"] += 1return counter_holder["counter"]async def super_dep(count: int = Depends(dep_counter)):return count@app.get("/counter/")async def get_counter(count: int = Depends(dep_counter)):return {"counter": count}@app.get("/sub-counter/")async def get_sub_counter(subcount: int = Depends(super_dep), count: int = Depends(dep_counter)):return {"counter": count, "subcounter": subcount}@app.get("/sub-counter-no-cache/")async def get_sub_counter_no_cache(subcount: int = Depends(super_dep),count: int = Depends(dep_counter, use_cache=False),):return {"counter": count, "subcounter": subcount}@app.get("/scope-counter")async def get_scope_counter(count: int = Security(dep_counter),scope_count_1: int = Security(dep_counter, scopes=["scope"]),scope_count_2: int = Security(dep_counter, scopes=["scope"]),):return {"counter": count,"scope_counter_1": scope_count_1,"scope_counter_2": scope_count_2,}client = TestClient(app)def test_normal_counter():counter_holder["counter"] = 0response = client.get("/counter/")assert response.status_code == 200, response.textassert response.json() == {"counter": 1}response = client.get("/counter/")assert response.status_code == 200, response.textassert response.json() == {"counter": 2}def test_sub_counter():counter_holder["counter"] = 0response = client.get("/sub-counter/")assert response.status_code == 200, response.textassert response.json() == {"counter": 1, "subcounter": 1}response = client.get("/sub-counter/")assert response.status_code == 200, response.textassert response.json() == {"counter": 2, "subcounter": 2}def test_sub_counter_no_cache():counter_holder["counter"] = 0response = client.get("/sub-counter-no-cache/")assert response.status_code == 200, response.textassert response.json() == {"counter": 2, "subcounter": 1}response = client.get("/sub-counter-no-cache/")assert response.status_code == 200, response.textassert response.json() == {"counter": 4, "subcounter": 3}def test_security_cache():counter_holder["counter"] = 0response = client.get("/scope-counter/")assert response.status_code == 200, response.textassert response.json() == {"counter": 1, "scope_counter_1": 2, "scope_counter_2": 2}response = client.get("/scope-counter/")assert response.status_code == 200, response.textassert response.json() == {"counter": 3, "scope_counter_1": 4, "scope_counter_2": 4}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。