何时使用 slug 字段和查询字符串

Posted

技术标签:

【中文标题】何时使用 slug 字段和查询字符串【英文标题】:When to use slug field and query string 【发布时间】:2015-11-20 06:54:07 【问题描述】:

我是 django 网络开发的新手,我不知道何时使用 slug 字段以及何时在 url 中使用查询字符串参数。谁能建议我它们之间的实际区别。

【问题讨论】:

What is a "slug" in Django? 的可能重复项 【参考方案1】:

在 slug 相关的 django url 中,您有一个与视图关联的 url。但是您不能将查询字符串参数传递给您的视图。

Ex -example.com/post/hello-world/ 不会将任何参数传递给您的视图函数。

但是如果你想给你的视图传递额外的参数,例如,

example.com/search/?q=hello-world

这里的q=hello-world 是传递给您的视图的查询字符串参数。 在您的视图函数中,您可以在request.GET 中获取这些参数 所以你的视图函数是这样的

def helloworld():
    qParams = request.GET.get('q', '')
     ....
     ....

希望这会有所帮助。

【讨论】:

【参考方案2】:

使用 slug 可以使 url 保持简单和干净,从而易于记忆。考虑以下示例:

example.com/post/hello-world/

v/s

example.com/?post=hello-world

显然,第一个更干净。

但查询字符串参数也有其用途。例如,当您搜索对象时。

example.com/search/?q=hello-world

或者当你需要传递多个参数时

example.com/search/?q=hello+world&lang=en&something=else

【讨论】:

以上是关于何时使用 slug 字段和查询字符串的主要内容,如果未能解决你的问题,请参考以下文章

姜戈。非 ascii 字段不会创建 slug。我希望得到音译,但得到一个空字段和错误

Django URL 基于带空格的字符域?

如何使用 GraphQL 通过 slug 进行搜索? - 字段“文章”上的“未知参数”

如何从非英语值创建一个 slug?

何时/何地在 FastAPI 中使用正文/路径/查询/字段?

MySQL子查询(六)