django - 带有参数的 Django Rest Framework GET 请求
问题描述
我正在尝试在 Django Rest Framework 中使用参数(srcFilename)发出获取请求。我很困惑在 django 中在哪里添加“req.query.srcFilename”(就像在 javascript 中一样)。我读到我必须在“<>”中添加带有参数的完整网址,如下面的代码所示,但它找不到网址。
视图.py:
@api_view(['GET'])
def api_generate_signed_url(request, srcFilename):
print(f'srcFilename: {srcFilename}')
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(srcFilename)
if request.method == 'GET':
url = blob.generate_signed_url(
version="v4",
# This URL is valid for 15 minutes
expiration=datetime.timedelta(minutes=15),
# Allow GET requests using this URL.
method="GET",
)
print(f"Generated GET signed URL: {url}")
return Response(url)
网址.py:
from django.urls import include, path
from rest_framework import routers
from .views import api_generate_signed_url
router = routers.DefaultRouter()
urlpatterns = [
path('', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
path(r'signedurl?srcFilename=<srcFilename>', api_generate_signed_url),
]
在 Postman 中尝试此操作时,出现以下错误:
The current path, signedurl, didn't match any of these.
解决方案
你必须改变你的路径如下......
path('signedurl', api_generate_signed_url),
不用写了?srcFilename=<srcFilename>
。只需将其删除。
然后在您的视图中通过 QueryDict 访问您的请求参数request.query_params.get('srcFilename')
。
推荐阅读
- visual-studio-code - 如何让 Sublime Text 3 更像 VSCode?
- node.js - Docker Swarm 中的 MongoDB 初始化
- sql - 在 Oracle 中解析多个 Json 数组元素
- python - Oracle数据库表的Django迁移错误
- javascript - 来自 Promise 的 Jest 模拟回调函数
- java - Spring boot JPA - 按实体集合排序
- ruby - 外部块中的动态方法可以在子块中访问吗?- Ruby 元编程
- amazon-web-services - 从 DynamoDB 的 Lambda 获取 JSON 可序列化输出时出错
- reactjs - 将具有状态的类组件转换为具有挂钩的功能组件
- unreal-engine4 - 虚幻引擎 (4.25.4) 不再打开项目