Django学习笔记----数据库操作实例

简介: 上上篇>Django学习笔记----环境搭建基于Windows上一篇>Django学习笔记----快速入门修改settings.py配置在环境搭建篇, 我们已经安装了mysql-client包安装好后, 在settings.

上上篇>Django学习笔记----环境搭建基于Windows
上一篇>Django学习笔记----快速入门

修改settings.py配置

在环境搭建篇, 我们已经安装了mysql-client包
安装好后, 在settings.py中将代码做如下替换

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'mydatabase',
    }
}
DATABASES = {
    'default': {
        # 数据库引擎名称
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'root',
        'PASSWORD':'123456',
        # 数据库名称
        'NAME':'test',
        # 数据库主机地址, 此外还可以设置端口
        'HOST':'localhost'
    }
}

在App中建立模型

在app中的models.py中建立模型类
如注释所示, 在Cmder中,依次使用
python manage.py migrate创建表结构
python manage.py makemigrations App_name
让Django在数据库中建立对应的表

class Mysite(models.Model):
    # use 'python manage.py migrate' create table Structure
    # use 'python manage.py makemigrations App_name(Not class name)'
    # let Django konw what had been changed
    title = models.CharField(max_length=100)
    url = models.URLField()
    author = models.CharField(max_length=50)
    num = models.IntegerField()

之后查看数据库, 可以看到已经建立好的表.
这里面的表不仅有刚刚建立的模型, 还有Django自己建立的表. 模型建立的表的命名格式是AppName_ModelName

表已建立

通过Django进行数据库基本操作

我们通过Djangoshell工具来演示对数据库的基本操作, 在Cmder中键入以下命令启动shell

python manage.py shell

启动后导入你建立的模型的包, 如from myTest.models import *

获取所有数据
# 相当于SELECT * FROM TABLE
In [2]: m = Mysite.objects.all()

In [3]: m
Out[3]: <QuerySet []> 
增加一条数据
In [4]: m = Mysite(title='django', num=2)

In [5]: m.save()

在前面获取数据时, 表是空的, 经过增加数据之后, 我们再查询一次

In [6]: m = Mysite.objects.all()

In [7]: m
Out[7]: <QuerySet [<Mysite: Mysite object>]>

我们将该数据取出来

In [8]: m[0].title
Out[8]: 'django'
查询数据

查询不同字段只需更换get()的字段名

# 获取单条
In [9]: m = Mysite.objects.get(num=2)

In [10]: m.title
Out[10]: 'django'

# 也可以使用Filter, 相当于SQL语句中的Where
m = Mysite.objects.filter(title='django')
修改数据

查询出来的数据可以进行更改, 选中对应的字段进行赋值并保存即可

In [25]: m.title = 'flask'

In [26]: m.save()

In [27]: m.title
Out[27]: 'flask'

也可以直接使用Update函数进行修改

# 修改单条
 Mysite.objects.filter(num=2).update(title='Google')
# 修改整列
 Mysite.objects.all.update(title='Google')
删除数据

删除数据同样简单, 删除成功后再次查询该记录就会报错. 删除数据同样可以使用前面查询数据的filter方法和all方法来实现对查询的多条结果进行删除

In [28]: m.delete()
Out[28]: (1, {'myTest.Mysite': 1})

In [29]:  m = Mysite.objects.get(num=2)
---------------------------------------------------------------------------
DoesNotExist                              Traceback (most recent call last)
<ipython-input-29-96b21651e5d5> in <module>()
----> 1 m = Mysite.objects.get(num=2)

对查询结果进行排序

# 升序排列
Mysite.objects.all().order_by("num")
# 降序排列
Mysite.objects.all().order_by("-num")

也可以在模型中设置排序

class Mysite(models.Model):
    ......
    class Meta:
        ordering = ['num']

显示数据

在查询结果中, 我们得到的是一个列表, 可以使用Python的列表的方法进行遍历, 相信大家都会的
既然结果是列表, 那么可以用切片来限制返回的结果也是在意料之内的

Mysite.objects.all()[0:2]
目录
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
4月前
|
存储 关系型数据库 MySQL
【赵渝强老师】MySQL数据库的多实例环境
MySQL多实例是指在一台服务器上运行多个MySQL服务,通过不同端口提供独立的数据服务。各实例共享安装程序,但使用各自的配置文件和数据文件,实现资源高效利用。本文详细介绍了如何通过“mysqld_multi”工具配置和启动多个MySQL实例,并演示了目录创建、初始化、配置文件修改及实例启动等操作步骤。
164 1
|
存储 监控 安全
数据库多实例的部署与配置方法
【10月更文挑战第23天】数据库多实例的部署和配置需要综合考虑多个因素,包括硬件资源、软件设置、性能优化、安全保障等。通过合理的部署和配置,可以充分发挥多实例的优势,提高数据库系统的运行效率和可靠性。在实际操作中,要不断总结经验,根据实际情况进行调整和优化,以适应不断变化的业务需求。
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
252 61
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
477 57
|
11月前
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
256 4
|
12月前
|
SQL 定位技术 数据库
深入探索Django ORM:高效数据库操作的秘诀####
本文旨在为读者揭开Django ORM(对象关系映射)的神秘面纱,通过一系列生动的比喻和详实的案例,深入浅出地讲解其核心概念、工作原理及高级特性。我们将一起探讨如何利用Django ORM简化数据库交互,提升开发效率,同时确保数据的一致性和安全性。不同于传统的技术文档,本文将以故事化的形式,带领读者在轻松愉快的氛围中掌握Django ORM的精髓。 ####
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
499 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
179 0

热门文章

最新文章