Django学习笔记----数据库操作实例-阿里云开发者社区

开发者社区> fesoncn> 正文

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]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL数据库学习之路(七)
在SQL server managerment中可以点击帮助,会有帮助文档。 一、联合查询 将多个查询结果集合并成一个。
735 0
Python零基础学习笔记(四)——数据类型
python数据类型:Number(数字):包括整数/浮点数(小数)/复数String(字符串)Boolean(布尔值)None(空值)list(列表)tuple(元组)dict(字典)set(集合)
1235 0
SQL数据库学习之路(八)
数据库介绍: 在网页上的主程序中进行注册操作,然后把数据发送给人,人传递这些数据到数据库当中。   为什么学ADO.NET:之前我们所学的只能在查询分析器中查看数据,操作数据。
790 0
SQL数据库学习之路(六)
一、连接查询:当需要的结果需要从多张表中取时 关键问题:哪些表、关系(学生表的Id联系到班级表的Id) 内连接:inner join,两表中完全匹配的数据。
810 0
SQL数据库学习之路(一)
1.数据库简介(一个放数据的仓库)  解决的问题:持久化存储,优化读写,保证数据的有效性 关系型数据库:    基于E-R模型(实体-联系图Entity Relationship)    使用sq|语言进行操作(SQL...
940 0
这38个小技巧告诉你如何快速学习MySQL数据库
无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学MySQL,到底是要学习它的哪些东西呢?此文为你揭晓,你值得一看!看过别忘记点赞+转发支持哦。
1083 0
Django学习笔记----快速入门
上一篇>Django学习笔记----环境搭建基于Windows 基于以下环境: Windows 10 Python 3.6 Django 1.18 开始第一个Django项目 进入Cmder, 进入想创建工程的文件夹, 键入django-admin...
1205 0
数据结构学习笔记——最大子列和问题
PTA 中国大学MOOC-陈越、何钦铭-数据结构 01-复杂度1 最大子列和问题(20 分) 给定K个整数组成的序列{ N​1​​ , N​2​​ , ..., N​k},“连续子列”被定义为{ N​i , N​i+1​​ , ..., N​j},其中 1≤i≤j≤K。
1025 0
+关注
fesoncn
Python爬虫,翻译,摄影
18
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载