gpt4 book ai didi

python - Django 中的 URL 路径参数与查询参数

转载 作者:行者123 更新时间:2023-11-28 17:12:11 26 4
gpt4 key购买 nike

我已经四处寻找了一段时间,但似乎找不到任何涉及差异的内容。正如标题所述,我试图找出通过 url 路径参数(如 /content/7)获取数据的区别,然后在你的 urls.py 中使用正则表达式,并从查询参数(如 /content?num=7 使用 request.GET.get() 实际上可以。

各自的优缺点是什么,是否存在明显比另一个更好的选择的场景?

此外,据我所知,(Django 的)首选方法似乎是将 url 路径参数与正则表达式一起使用。除了可能更干净的 URL 之外,还有其他原因吗?欢迎提供与该主题相关的任何其他信息。

最佳答案

这取决于您想要遵循的架构模式。例如,根据 REST 架构模式(我们认为这是最常见的),您希望设计 URL,使它们在没有查询参数的情况下指向大致对应于应用程序中名词的“资源”,然后对应 HTTP 动词您可以对该资源执行的操作。

例如,如果您的应用程序有用户,您可能希望设计这样的 URL:

GET /users/ # gets all users
POST /users/ # creates a new user
GET /users/<id>/ # gets a user with that id. Notice this url still points to a user resource
PUT /users/<id> # updates an existing user's information
DELETE /users/<id> # deletes a user

然后您可以使用查询参数来过滤资源中的一组用户。例如,要获得活跃的用户,您的 URL 应该类似于

/users?active=true

总而言之,查询参数与路径参数取决于您的架构偏好。

REST 的更详细解释:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

Roy Fielding 的版本,如果你想获得真正的学术性:http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

关于python - Django 中的 URL 路径参数与查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46853629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com