Django(3)模型(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Django(3)模型(二)


(2)where条件查询

- 现在数据库中,手动增加几条数据,以便看到效果:
mysql> insert into TestModel_aaa values(2,"lisi","22");
Query OK, 1 row affected (0.06 sec)
mysql> insert into TestModel_aaa values(3,"wangwu","55");
Query OK, 1 row affected (0.08 sec)
mysql> select * from TestModel_aaa;
+----+----------+-----+
| id | name     | age |
+----+----------+-----+
|  1 | zhangsan | 34  |
|  2 | lisi     | 22  |
|  3 | wangwu   | 55  |
+----+----------+-----+
3 rows in set (0.00 sec)
- 修改testdb.py
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    response = ""
    response_id = ""
    response1 = ""
    response2 = ""
    list = Aaa.objects.filter(id=3)   #相当于在 select 时添加where过滤
    for i in list:
        response1 = i.id
        response2 += i.name + " " + i.age + ""
    response = response2
    response_id = str(response1)
    return HttpResponse("<p>" + response_id + " "  + response + "</p>")

访问


b2d35521083b4698a392c6b137da2723.png


  • 再次修改testdb.py


# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    response = ""
    response_id = ""
    response1 = ""
    response2 = ""
    list = Aaa.objects.filter(name="lisi")
    for i in list:
        response1 = i.id
        response2 += i.name + " " + i.age + ""
    response = response2
    response_id = str(response1)
    return HttpResponse("<p>" + response_id + " "  + response + "</p>")

访问


dc8b7cb2fdcb41b2bd1da5aacb023061.png


(3)获取单个对象

- 修改testdb.py
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    list = Aaa.objects.get(id=3)
    return HttpResponse("<p>" + str(list.id) + list.name + list.age +"</p>")
  • 使用get获取的是单个对象,不是可迭代数据,所以可以直接取值,下面来访问一下


c8deb4f6cb87446e8f2a9f5bc897dd19.png


(4)限制返回的数据

- 注释
offset 1:表示跳过第1行,因为是根据下标,所以第一行数据行是0开始
limit 2:表示获取前两行
- 下面修改testdb.py文件
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    response = ""
    response1 = ""
    list = Aaa.objects.order_by("name")[0:2] #限制返回的数据,相当于SQL中的offset 0 limit 2,也就是跳过0行,输出前1行
    for i in list:
        response1 += i.name + " "
    response = response1
    return HttpResponse("<p>" + response + "</p>")

访问,可以看到,显示的是前两行

314b6bdbb3b04218bb198b1830f10cf4.png

再次修改进行访问

# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    response = ""
    response1 = ""
    list = Aaa.objects.order_by("name")[1:2] #相当于SQL中的offset 1 limit 2,也就是跳过第一行,输出前2行,因为跳过了一行,所以最终输出1行
    for i in list:
        response1 += i.name + " "
    response = response1
    return HttpResponse("<p>" + response + "</p>")

image.png


(5)数据排序


- 修改testdb.py文件
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    response = ""
    response_id = ""
    response1 = ""
    response2 = ""
    list = Aaa.objects.order_by("id")  #按照指定字段,从小到大排序
    for i in list:
        response1 += str(i.id)
        response2 += i.name + " " + i.age + " "
    response = response2
    response_id = response1
    return HttpResponse("<p>" + response_id + " " + response +  "</p>")


访问


image.png



  • 上面是从小到大,下面是从大到小


- 修改testdb.py文件
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    response = ""
    response_id = ""
    response1 = ""
    response2 = ""
    list = Aaa.objects.order_by("-id")  #按照指定字段,从小到大排序,前面加 - 
    for i in list:
        response1 += str(i.id)
        response2 += i.name + " " + i.age + " "
    response = response2
    response_id = response1
    return HttpResponse("<p>" + response_id + " " + response +  "</p>")


  • 访问

image.png

(6)混合查询

- 往数据库添加数据
mysql> insert into TestModel_aaa values(4,"lisi","22");
Query OK, 1 row affected (0.15 sec)
mysql> select * from TestModel_aaa;
+----+----------+-----+
| id | name     | age |
+----+----------+-----+
|  1 | zhangsan | 34  |
|  2 | lisi     | 22  |
|  3 | wangwu   | 55  |
|  4 | lisi     | 22  |
+----+----------+-----+
4 rows in set (0.00 sec)
- 修改testdb.py文件
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Aaa
def testdb(request):
    response = ""
    response_id = ""
    response1 = ""
    response2 = ""
    list = Aaa.objects.filter(name="lisi").order_by("id")  #where查询name等于lisi的,然后通过id进行从小大到大排序
    for i in list:  
        response1 += str(i.id)
        response2 += i.name + " " + i.age + " "
    response = response2
    response_id = response1
    return HttpResponse("<p>" + response_id + " " + response +  "</p>")
  • 访问


image.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
48 0
Python 教程之 Django(9)对模型中的字段进行验证
|
5月前
|
API 数据库 Python
Python 教程之 Django(8)在 Django 管理界面中渲染模型
Python 教程之 Django(8)在 Django 管理界面中渲染模型
43 0
Python 教程之 Django(8)在 Django 管理界面中渲染模型
|
5月前
|
SQL 数据库 索引
Django MTV - 模型层 - (专题)知识要点与实战案例
Django MTV - 模型层 - (专题)知识要点与实战案例
60 0
|
5月前
|
SQL 存储 API
Python 教程之 Django(7)Django 模型
Python 教程之 Django(7)Django 模型
76 1
Python 教程之 Django(7)Django 模型
|
4月前
|
关系型数据库 MySQL 数据库
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
|
2月前
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
|
2月前
|
存储 数据库 开发者
Django Web架构:全面掌握Django模型字段(下)
Django Web架构:全面掌握Django模型字段(下)
50 2
|
2月前
|
API 数据库 开发者
【独家揭秘】Django ORM高手秘籍:如何玩转数据模型与数据库交互的艺术?
【8月更文挑战第31天】本文通过具体示例详细介绍了Django ORM的使用方法,包括数据模型设计与数据库操作的最佳实践。从创建应用和定义模型开始,逐步演示了查询、创建、更新和删除数据的全过程,并展示了关联查询与过滤的技巧,帮助开发者更高效地利用Django ORM构建和维护Web应用。通过这些基础概念和实践技巧,读者可以更好地掌握Django ORM,提升开发效率。
22 0
|
2月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
2月前
|
SQL 关系型数据库 MySQL
如何创建 Django 模型
如何创建 Django 模型
18 0