Django(3)模型(二)

简介: 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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
关系型数据库 MySQL 数据库
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
|
SQL 存储 数据库
Django模型查询与性能调优:告别N+1问题
本文详解Django数据库查询基础与优化技巧,涵盖QuerySet使用、关联查询(一对多/多对多)、N+1查询问题及解决方案(select_related、prefetch_related)、高级查询方法及项目实战中的数据权限控制实现。
480 0
|
存储 数据库 Python
Django模型关系:从一对多到多对多全解析
本文详解Django模型关系:一对多(ForeignKey)及多对多(ManyToManyField)关系的定义、操作与优化技巧。同时探讨外键约束的使用场景与权衡策略。
735 0
|
存储 关系型数据库 MySQL
Django模型开发:模型字段、元数据与继承全方位讲解
本文将全面介绍 Django 模型的关键知识点,包括模型字段类型、映射、常用配置选项以及模型继承等高级特性,帮助开发者快速掌握模型设计与使用技巧。
462 0
|
机器学习/深度学习 前端开发 网络架构
Django如何调用机器学习模型进行预测
Django如何调用机器学习模型进行预测
460 5
|
机器学习/深度学习 监控 数据挖掘
基于Django和百度飞桨模型的情感识别Web系统
基于Django和百度飞桨模型的情感识别Web系统
386 5
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
286 4
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
549 9
|
存储 数据库 开发者
Django Web架构:全面掌握Django模型字段(下)
Django Web架构:全面掌握Django模型字段(下)
399 2
|
存储 开发框架 JSON
【查漏补缺】Django模型字段类型及其应用
【查漏补缺】Django模型字段类型及其应用
340 0