首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

完整的 Django 零基础教程|初学者指南 - 第 3 部分 转自:维托尔·弗雷塔斯

最后,我们需要在Topic和Post中的字段来了解谁发起了讨论,以便我们可以识别谁在发布回复。 我们还可以与Board 和User 模型建立关联,因此我们可以确定谁创建了给定的Board 。...该帖子 车型将拥有一个信息 场,这将是用于存储后答复的文本,在创建 日期和时间字段主要用来订购帖子 一内主题 ,一个在更新的 日期和时间栏通知用户 何时以及是否编辑了给定的帖子 。...类图板和主题关联一个主题必须与一个 ( 1)板相关联(这意味着它不能为空),并且一个板可以与许多主题相关联或没有 ( 0..*)相关联。这意味着Board可能没有单个Topic存在。 ?...类图帖子和用户关联一个帖子必须有一个并且只有一个用户与:创建者( 1)相关联。一个用户可能有很多或没有 帖子( 0..*)。...我们将通过实现反向关系来实现这一点,其中 Django 将自动在数据库中执行查询以返回属于特定主题的所有帖子 的列表。 好的,现在足够的 UML!

2.2K40

django 1.8 官方文档翻译: 1-2-3 编写你的第一个Django应用,第3部分

url() 参数: regex regex 是 regular expression 的简写,这是字符串中的模式匹配的一种语法, 在 Django 中就是是 url 匹配模式。...Django 将请求的 URL 从上至下依次匹配列表中的正则表达式,直到匹配到一个为止。 需要注意的是,这些正则表达式不会匹配 GET 和 POST 参数,以及域名。...请注意 include() 中的正则表达式没有 $ (字符串结尾的匹配符 match character) 而尾部是一个反斜杠。...例如 {{ poll.question }} , 首先 Django 对 poll 对象做字典查询。 否则 Django 会尝试属性查询 – 在本例中属性查询成功了。...如果属性查询还是失败了,Django 将尝试 list-index 查询。

1.8K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Sentry 开发者贡献指南 - Django Rest Framework(Serializers)

    https://www.django-rest-framework.org/ 示例 在典型的 serializer 中,指定了字段,以便它们根据您的规范验证数据的类型和格式。...在上面给出的示例中,类型被检查并且必须是某个字符串。如果某个字段与您的验证方法所期望的不匹配,则会引发 ValidationError。...例如给定的输入 { 'age':5, 'type':'puppy' } serializer 将返回一个错误,指出未提供所需的字段名称。...在这种情况下,它会在后台搜索匹配的模型 Example, 给定变量 example 的 model 类型。...get_attrs 方法 当 Django Rest Framework 具有类似功能时,为什么要这样做? get_attrs 方法就是原因。它允许您执行批量查询而不是多个查询。

    1.1K30

    第12篇-Elasticsearch全文查询

    现在让我们一个接一个地转到每个全文查询。 1.匹配查询 我们在之前的博客中讨论了匹配查询,但是没有提到匹配查询的正常用例。...在下面的查询中,对所有与“名称”字段中的关键字匹配的文档给予5的提升 POST fb-post/_search { "query": { "multi_match" : { "query": "...它与匹配查询类似,但此处搜索关键字的格式很重要。它需要特定的格式,并且如果搜索关键字的格式不同,则会返回错误。...在下面给出的示例中,match_phrase查询以相同顺序获取与单词“ deeply关心”匹配的文档。...该match_phrase查询没有提供火柴,即使存在具有“深切关注文档此查询有关 ” 短语中的“描述”字段 POST fb-post/_search { "query": { "match_phrase

    1.9K00

    零基础使用Django2.0.1打造在线教育网站(提示):错误贴

    啃饼思录 [1240] QQ: 2810706745(啃饼小白) 写在前面 最近有小伙伴们私聊我说出现了很多问题,这里特开一个帖子专门用于错误的指导与交流...首先是说注册和激活有问题,我对此进行了测试,发现没有问题,小伙伴们出现这种问题可能是代码粘贴时的位置出现了错误,请各位小伙伴们自己对比一下代码,注意是否对齐(部分代码进行了完善),这里贴一下代码。...,因为第一种是匹配任意位数,第二种则是贪婪匹配: # 第一种 # 配置文件上传的访问处理url re_path('media/(?....*)', serve, {"document_root": MEDIA_ROOT}), 还有因为我这个是Python3+Django2.0,如果你在部署的时候没有新建虚拟环境,那么你就很容易造成Python...版本的使用混乱,而Ubuntu自带的Python版本是2.0系列,因此最好是使用虚拟环境来避免这个错误!

    55230

    Python Day16 Django

    一些请求的例子: 注意下列例子中的$符号,代表以什么结尾,'^books/(\d+)/$'表示books后面只能跟一个路径比如/books/3/, 如果没有$符号的话,/books/2012/12这样的例子也会被匹配到...在URL控制器(project/urls.py)中,给匹配规则起个别名可以解决这个问题,这就叫做反向解析 在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中...在更高层的与处理Django 模型实例相关的代码中:使用get_absolute_url() 方法。...**,返回结果有且只有一个, 如果符合筛选条件的对象超过一个或者没有都会抛出错误,返回的是object get() model对象 python get()的结果只能有一个 book = Book.objects.get...ret = Book.objects.all().values("price").distinct() print(ret) count(): 返回数据库中匹配查询

    1.9K10

    Django url 反向解析 和 命令空间

    Django 依次匹配该列表中的每个URL模式,在遇到第一个与请求的URL相匹配的模式时停下来。...一旦某个正则表达式与请求的URL相匹配,则Django 导入并调用给定的视图,该视图仅为一个单纯的Python 函数(或者是一个基于类的视图)。...如果请求的URL没有匹配到任何一个正则表达式,或者在匹配过程的任何时刻抛出了一个异常,那么Django 将调用适当的错误处理视图进行处理。请参见下面的错误处理。...第二种方式叫做反向解析URL、反向URL匹配、反向URL查询或者简单的URL反查。...如果提供的命名空间与第1步中的应用命名空间 不匹配,Django 将尝试直接将此命名空间作为一个实例命名空间查找。

    2.4K30

    简单全文搜索

    整个搜索的过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入的结果到服务器。...接下来我们做了一个小小的校验,如果用户没有输入搜索关键词而提交了表单,我们就无需执行查询,我们就在模板中渲染一个错误提示信息。...Django 内置了很多查询表达式,建议过一遍 Django 官方留个印象,了解每个表达式的作用,以后碰到相关的需求就可以快速定位到文档查询其用途 Field lookups。...此外我们这里从 from django.db.models 中引入了一个新的东西:Q 对象。Q 对象用于包装查询表达式,其作用是为了提供复杂的查询逻辑。...在 Pythonzhcn 社区的新手问答版块 发布帖子。

    1.9K60

    37.Django1.11.6文档

    Django 依次匹配每个URL 模式,在与请求的URL 匹配的第一个模式停下来。...如果没有匹配到正则表达式,或者如果过程中抛出一个异常,Django 将调用一个适当的错误处理视图。 请参见下面的错误处理。...验证给定值与某个正则表达式匹配。 错误信息的键:required, invalid 需要一个必需的参数: regex 指定为字符串或编译的正则表达式对象的正则表达式。...如果给定实例的数据在绑定数据中没有更改,那么实例将不会保存到数据库,并且不会包含在返回值中(在上面的示例中为instances)。...它提示你修改一个给定user的密码,你必须输入两次。 如果它们匹配,新的密码将会立即修改。 如果你没有提供user,命令行将尝试修改与当前系统用户匹配的用户名的密码。

    24.4K80

    django-7-django模型系统

    通过模型类上的管理器来构造  模型类上的管理器(class.objects)  queryset (惰性,,没有操作数据库)表示数据库中对象的集合,等同于select 语句   query 获取mysql... filter(**kwargs) 根据给定的条件获取过滤后的queryset,多个条件用','连接  exclude(**kwargs) 作用和filter相反,去除不符合条件的对象  多条件的or连接...***切片后不再支持附加条件与排序  *多字段排序有什么用?...*  常用查询条件  > < =  通过'__' 使用  exact 默认等于  iexact 不区分大小写的匹配  contains  icontains 不区分大小写  in name__in =...分组  查询男生有几个,女生有几个  结合 values , annotate(num = Count('sex'))  **复杂查询**  from django.db.models.functions

    82010

    django 1.8 官方文档翻译: 3-1-1 URL调度器

    Django 依次匹配每个URL 模式,在与请求的URL 匹配的第一个模式停下来。...如果没有匹配到正则表达式,或者如果过程中抛出一个异常,Django 将调用一个适当的错误处理视图。请参见下面的错误处理。...错误处理 当Django 找不到一个匹配请求的URL 的正则表达式时,或者当抛出一个异常时,Django 将调用一个错误处理视图。 这些情况发生时使用的视图通过4个变量指定。...第二种方式叫做反向解析URL、反向URL 匹配、反向URL 查询或者简单的URL 反查。...如果提供的命名空间与第1步中的应用命名空间 不匹配,Django 将尝试直接将此命名空间作为一个实例命名空间查找。

    1.3K20

    Django之Model操作数据库详解

    4.1查询方法: filter(**kwargs) 包含了与所给筛选条件相匹配的对象 all() 查询所有结果 get(**kwargs...) 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都是报错 values(*field) 返回一个ValueQuerySet...) 与values()非常相似,返回一个元组序列,values返回一个字典序列 count() 返回数据库中匹配的记录的数量 first()...返回数据库中匹配的对象的第一个对象 last() 返回数据库中匹配的对象的最后一个对象 exists() 判断一个对象集合中是否包含指定对象...Q查询 F查询专门取对象中某列值的操作,F的作用:用来批量修改数据的 #导入F from django.db.models import F #把table1表中的num列中的每一个值在的基础上加10

    7.1K10

    第15篇-使用Django进行ElasticSearch的简单方法

    开发工具 11.Elasticsearch查询方法 12.Elasticsearch全文查询 13.Elasticsearch查询-术语级查询 14.Python中的Elasticsearch入门 15...在搜索了如何使用Django正确实现ElasticSearch的很长时间之后,我并没有真正找到令人满意的答案。似乎正在采取不必要的步骤来将数据索引到ElasticSearch中。...现在,您应该可以在那里看到您的Blog帖子模型。继续并在管理员中创建您的第一篇博客文章。 恭喜,您现在有了一个可正常运行的Django项目!终于是时候玩有趣的东西了–连接ElasticSearch。...将ElasticSearch与Django连接 首先, search.py 在我们的 elasticsearchapp 目录中创建一个新文件。这是ElasticSearch代码的所在地。...因为如果要在生成器上迭代的对象很多,则不必先将它们加载到内存中。 上面的代码只有一个问题。您 .indexing() 的模型上还没有方法。

    5.3K00

    统计各个分类下的文章数

    当 Django 要查询某篇 post 对应的分类时,比如 post 1,首先查询到它分类的 id 为 1,然后 Django 再去 Category 表找到 id 为 1 的那一行,这一行就是 post...把这个统计数字保存到每一条 Category 的记录就可以了(当然并非保存到数据库,在 Django ORM 中是保存到 Category 的实例的属性中,每个实例对应一条记录)。...代码中的 Count 方法为我们做了这个事,它接收一个和 Categoty 相关联的模型参数名(这里是 Post,通过 ForeignKey 关联的),然后它便会统计 Category 记录的集合中每条记录下的与之关联的...因为 num_posts 的值小于 1 表示该分类下没有文章,没有文章的分类我们不希望它在页面中显示。关于 filter 函数以及查询表达式(双下划线)在之前已经讲过,具体请参考 分类与归档。...在 Pythonzhcn 社区的新手问答版块 发布帖子。 在 Pythonzhcn 社区的新手问答版块 发布帖子。

    99140

    Django之QuerySet详解

    像这样: Entry.objects.order_by('blog__name', 'headline') 如果排序的字段与另外一个模型关联,Django将使用关联的模型的默认排序,或者如果没有指定Meta.ordering....]> 如果有多个字段,传递flat将发生错误。 如果不传递任何值给values_list(),它将返回模型中的所有字段,以在模型中定义的顺序。 常见的情况是获取某个模型实例的特定字段值。...__exact='bar', defaults={'defaults': 'baz'}) 当你使用手动指定的主键时,get_or_create()方法与create()方法有相似的错误行为 。...update_or_create方法尝试通过给出的kwargs 去从数据库中获取匹配的对象。 如果找到匹配的对象,它将会依据defaults 字典给出的值更新字段。...和get_or_create()一样,这个方法也容易导致竞态条件,如果数据库层级没有前置唯一性会让多行同时插入。 在Django1.11在defaults中增加了对可调用值的支持。

    2.4K20

    Django -- 视图是啥?模板是何物?

    前言 在Django的官方文档中是这么定义视图的: "一类具有相同功能和模板的网页的集合",概念比较抽象,我们直接 拿比较简单常见论坛网站来举例,可能要求创建以下视图: 论坛首页 -- 列表页面,由时间先后倒叙展示新建的帖子...帖子详情 -- 详细展示帖子内容 评论处理 -- 为帖子增加评论的操作 在Django 中,系统所展示的页面和其他内容都是由视图派生而来,每一个视图可以表现为一个简单的Python函数,如果是基于类的视图的...在Django中,千万不要把视图理解为前端展示给我们的页面,请大家回顾下Django的MTV 模式。...(/)之外的非空字符串,这是默认的形式 int,匹配正整数,包含 0。...在Django的配置文件中默认设置了 APP_DIRS为True,这一选项会让Django在每个 INSTALLED_APPS文件夹中寻找 templates子目录。

    1.1K20

    Django博客教程(五):处理 http 请求完全解读

    Web 应用的交互过程其实就是 http 请求与响应的过程。...比如你访问了社区主页 www.pythonzh.cn,服务器接收到这个请求后他就知道用户访问的是首页,首页显示的是全部帖子列表,于是它从数据库里把帖子数据取出来,生成一个写着这些数据的 html 文档,...注意这里我们的网址是用正则表达式写的,django 会用这个正则表达式去匹配用户实际输入的网址,如果匹配成功,就会调用其后面的视图函数做相应的处理。...,而 r'^$' 的模式正是匹配一个空字符串(这个正则表达式的意思是以空字符串开头且以空字符串结尾),于是二者匹配,django 便会调用其对应的 views.index 函数。...假如我们这里把 r'' 改成 r'blog/',而我们在 blog.urls 中写的url 是 r'^$',一个空字符串,那么 django 最终匹配的就是 blog/ 加上一个空字符串,即 blog/

    1.7K100

    Django2.0中文(重定向)

    重定向:例如:/news--> /xx/yy/news 将 ‘django.contrib.redirects’ 添加到 INSTALLED_APPS 设置中。...在数据库中创建一个django_redirect表。这个表只有site_id,old_path,new_path三个字段。...每当Django应用引发一个404错误,作为终极手段,该中间件将为所请求的URL在重定向数据库中进行查找。它将使用给定的old_path以及SITE_ID设置对应的站点ID查找重定向设置。...如果为找到匹配项,该请求如常处理。 该中间件仅为404错误激活,将这个中间件放到列表最后,因为它是终极手段。 注意: 如果同时使用重定向和简单页面回退中间件,必须考虑先检查其中的哪一个。...重定向表现为django/contrib/redirects/models.py中的一个标准Django模型。所以可以通过Django数据库API来存取重定向对象。

    55420
    领券