Django数据库API:pk简记法与LIKE语句转义

需积分: 11 74 下载量 55 浏览量 更新于2024-08-09 收藏 7.34MB PDF 举报
"Django 中文版 Mastering Django: Core" 在Django框架中,主键(Primary Key,简称PK)是每个模型实例的唯一标识符。对于大多数情况,Django默认选择`id`字段作为主键。为了简化编程,Django提供了一种名为`pk`的简记法来处理主键相关的查询操作。 在标题提到的`pk简记法`中,我们可以看到以下几点关键知识点: 1. **查询主键**:当你需要根据主键进行查询时,可以使用`pk`代替`id`。例如,`Blog.objects.get(pk=14)`等同于`Blog.objects.get(id__exact=14)`或`Blog.objects.get(id=14)`。这意味着`pk`暗指了对`id`字段的精确匹配(`__exact`)。 2. **范围查询**:`pk`简记法不仅限于精确匹配,还可以与其他查询操作符结合,如`in`、`gt`(大于)等。比如,`Blog.objects.filter(pk__in=[1,4,7])`将返回ID为1、4和7的博客条目,而`Blog.objects.filter(pk__gt=14)`则会返回所有ID大于14的博客条目。 3. **关联查询**:在进行模型间关联查询时,`pk`同样适用。比如,`Entry.objects.filter(blog__pk=3)`等同于`Entry.objects.filter(blog__id__exact=3)`,这里`blog__pk`指的是`blog`模型实例的主键。 4. **LIKE语句转义**:在Django的查询中,如果你使用了`iexact`、`contains`、`icontains`、`startswith`、`istartswith`、`endswith`或`iendswith`这些操作符,Django会自动处理LIKE语句中的百分号(`%`)和下划线(`_`),确保它们不会被解释为SQL的通配符。这意味着在进行字符串匹配时,无需手动转义这些特殊字符。 以上知识点展示了Django如何简化和优化对主键的处理,以及在处理字符串查询时的智能行为。这使得开发者在编写代码时更加便捷,同时也降低了出错的可能性。 此外,提供的书籍信息还涵盖了Django的其他核心概念,如: - **视图和URL配置**:Django视图负责处理HTTP请求并生成响应,URL配置则将URL映射到相应的视图函数,实现URL的松耦合设计。 - **模板系统**:Django的模板系统用于生成HTML或其他文本输出,包含了一系列模板标签和过滤器,支持模板继承和子目录结构。 - **模型**:Django模型定义了数据库表的结构,通过Python类来描述数据模型,并提供了数据访问接口。 - **管理后台**:Django提供了一个内置的管理后台,方便开发者快速创建和管理数据库记录,可以通过自定义设置来适应不同的需求。 - **表单**:Django表单用于处理用户输入数据,包括数据验证、渲染和处理表单提交。 这些内容构成了Django开发的核心组成部分,帮助开发者理解和构建功能丰富的Web应用。通过学习这些章节,你可以逐步掌握Django框架并应用到实际项目中。