进行数据查询之前,我们需要先进入我们的管理后台,在里面添加一些数据。然后我们用Pycharm打开我们的数据库。具体操作方法:用Pycharm可视化操作数据库

我们的数据结构长这般模样:

双击blog_article,可以查看到文章表里的内容和里面的字段:

数据查询,就是在视图函数里(views.py文件里)对模型Product进行实例化,并生成对象。生成的对象就是我们要查询的数据。然后我们可以对这个对象的属性进行逐一赋值,对象的属性来自于Product模型中所定义的字段。直白一点的说法就是,我们在视图层里对某一个数据库表进行查询,然后得到一个对象,我们可以通过这个对象能获取到这个表里的所有字段的值。具体操作如下:

1、从models.py里导入模型Product(也就是类名,或者说表名):

blog/views.py
#比如我信要查询所有文章,我们就要views.py文件头部把文章表从数据模型导入
from .models import Article

2、在视图函数里对要查询的Product进行声明并实例化,然后生成对象allarticle。

blog/views.pydef index(request):#对Article进行声明并实例化,然后生成对象allarticleallarticle = Article.objects.all()#把查询到的对象,封装到上下文context = {'allarticle': allarticle,}#把上传文传到模板页面index.html里return render(request,'index.html',context)

注:这里我在原来的基础上,把index视图函数里的内容删除了,修改成上面的内容,下面的模板页面index.html也是如此。

3、打开templates/index.html页面,修改成下面的内容:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>MyBlog</title>
</head>
<body><div><ul><h4>所有文章:</h4>{% for article in allarticle  %}<li>{{ article.title }}</li>{% endfor %}</ul>
</div></div>
</body>
</html>

然后访问网站首页。就能看到我们的查询结果。

在模板里,我们可以对对象的属性进行赋值。比如模板里的{{ article.title }} 标题,就是我们通过**{{ 对象.属性(字段) }}**获取到对应的值。其它字段也是通过这样的方法来实现。

例如:

templates/index.html<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>MyBlog</title>
</head>
<body><div><ul><h4>所有文章:</h4>{% for article in allarticle  %}<li>标题:{{ article.title }}<br />栏目:{{ article.category }}<br />作者:{{ article.user }}<br />时间:{{ article.created_time }}<br /></li>{% endfor %}</ul>
</div></div>
</body>
</html>

从之前的文章我们可以看到,如果我们想要将数据库的数据展现到网页上,需要由视图、模型与模板共同实现,步骤如下:

1、在models.py里定义数据模型,以类的方式定义数据表的字段。在数据库创建数据表时,数据表由模型定义的类生成。

2、在视图views.py导入模型所定义的类,我们把这个类称之为数据表对象,然后在视图函数里使用Django的数据库操作方法,实现数据库操作,从而获取到数据表里的数据。

3、视图函数获取到数据之后,将数据以字典、列表或对象(上下文context)的方式传递给HTML模板,并由模板引擎接收和解析,最后生成相应的HTML网页,在浏览器里展现出来。

更多关于数据库查询操作方面的文章,请查看:ORM之QuerySet API 和 ORM QuerySet查询

参考链接:https://www.django.cn/course/show-43.html

【Django博客开发教程】:数据查询 Article.objects.all()相关推荐

  1. Django 博客开发教程 6 - 真正的 Django 博客首页视图

    在此之前我们已经编写了 Blog 的首页视图,并且配置了 URL 和模板,让 Django 能够正确地处理 HTTP 请求并返回合适的 HTTP 响应.不过我们仅仅在首页返回了一句话:欢迎访问我的博客 ...

  2. Django 博客开发教程 8 - 博客文章详情页

    首页展示的是所有文章的列表,当用户看到感兴趣的文章时,他点击文章的标题或者继续阅读的按钮,应该跳转到文章的详情页面来阅读文章的详细内容.现在让我们来开发博客的详情页面,有了前面的基础,开发流程都是一样 ...

  3. Django 3.2.5博客开发教程:体验数据查询

    进行数据查询之前,我们需要先进入我们的管理后台,在里面添加一些数据.然后我们用Pycharm打开我们的数据库.具体操作方法:用Pycharm可视化操作数据库 我们的数据结构长这般模样: 双击blog_ ...

  4. Django 3.2.5博客开发教程:用Admin管理后台管理数据

    上节我们我们把数据库迁移到数据库里去了,那么现在我们数据库里是个什么样的情况呢?我们点击Pycharm右上角的Database,然后在网站项目里选中我们的数据库文件db.sqlite3,把它拖到Dat ...

  5. Django 3.2.5博客开发教程:使用富文本编辑器添加数据

    在Django admin后台添加数据的时候,文章内容文本框想发布一篇图文并茂的文章需就得手写Html代码,这十分吃力,也没法上传图片和文件.这显然不是我等高大上程序猿想要的. 为提升效率,我们可以使 ...

  6. Django 3.2.5博客开发教程:实现网站首页

    实现首页模板前,我们先把共公的页面模板base.html调用好.首先我们先看导航部分,除开首页和关于博主之外,其它的其实是我们的文章分类名.如图: 我们只需要在首页视图函数里,查询出所有的文章分类名称 ...

  7. Django 3.2.5博客开发教程:实现模板之前的分析与准备

    在之前的体验django模板.体验数据查询以及一些常用的模板使用方法文章里,向大家介绍了如何将数据库的数据展现到网页上,和一些简单的模板使用方法.之后我们就开始实现各种页面的展现. 在此之前,我们先从 ...

  8. Django 3.2.5博客开发教程:HelloWorld欢迎页面

    基础配置做好了之后,我们就可以先迁移数据到数据库,然后启动我们的项目,感受Django的魅力. 在Pycharm左下角底部的Terminal,会弹出Terminal终端窗口,Pycharm自动会帮我们 ...

  9. Django 3.2.5博客开发教程:体验django模板

    上面我们有说过,用户发送请求的时候,视图会返回一个响应,响应可以是一个重定向,一个404错误,一个XML文档,一张图片或者是一个HTML内容的网页.前面几个返回的信息比较有限,我们重点更多是放在HTM ...

最新文章

  1. 基于Visual C++2010与windows SDK fo windows7开发Windows 7的多点触摸特性应用程序(1)
  2. zip 文件下载函数封装
  3. string去掉后四位_数字黑洞(下):四位数的黑洞
  4. 全场灭灯_海天黄豆酱《新相亲大会2》首遇滑铁卢,男嘉宾险遭全场灭灯
  5. Hive之架构 功能
  6. shell 练习(07)——MySQL 数据库备份
  7. 挪车让路,没有留下电话怎么办?
  8. sqlserver200864位下载_sql server 2008 r2 32位下载-sql server 2008 r2 3264位 中文版 - 河东下载站...
  9. java混淆工具zelix比较_Java混淆器和java混淆编译
  10. 12 Best Custom ROMs for Android You Can Install
  11. 用App Designer 制作2048小游戏
  12. java Excel导出功能之 固定列表格
  13. 计算机省一级b类模拟试题,江苏省计算机一级模拟试题及答案
  14. Android相机预览设置适配及显示方式
  15. 知网caj文件转pdf(无需下载任何软件,傻瓜式操作,必看!!!)
  16. win10 截屏自带快捷键(矩形,任意图形)
  17. 2011-2020年北京大学数字普惠金融指数(PKU-DFIIC)
  18. MVZ2Android,植物大战僵尸mvz2
  19. Nginx 防止SQL注入、XSS攻击的实践配置方法
  20. webrtc详细教程

热门文章

  1. micropython开发环境_micropython开发者指南
  2. 封条格式用word怎么打_大门封条格式用word怎么打
  3. 激发新型城市创新动能 第四范式分享智慧城市探索之路
  4. rust实战入门到进阶(3)
  5. mxnet基础到提高(51)-Activation激活函数
  6. 【深度学习】图解 9 种PyTorch中常用的学习率调整策略
  7. 【深度学习】在PyTorch中使用 LSTM 自动编码器进行时间序列异常检测
  8. 【学术相关】作者解读ICML接收论文:如何使用不止一个数据集训练神经网络模型?...
  9. 【Python基础】Python时间模块,超实用总结!
  10. 【Python】全网最新最全Pyecharts可视化教程(一)