单表操作:

一 项目的操作顺序:
1 在model.py文件中创建表结构
class Book(models.Model):
id=models.AutoField(primary_key=True)
title=models.CharField(max_length=32)
price=models.DecimalField(max_digits=5,decimal_places=2)
publish=models.CharField(max_length=32)
pub_date=models.DateTimeField() 2 连接数据库创建表
(1)先创建数据库bms
(2)配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'bms',      # 要连接的数据库,连接前需要创建好
'USER':'root',       # 连接数据库的用户名
'PASSWORD':'',       # 连接数据库的密码
'HOST':'127.0.0.1', # 连接主机,默认本级
'PORT':3306     # 端口 默认3306
}
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bms',# 要连接的数据库,连接前需要创建好
'USER': 'root',# 连接数据库的用户名
'PASSWORD': '',# 连接数据库的密码
'HOST': '127.0.0.1', # 连接主机,默认本级
'PORT':3306# 端口 默认3306
}, 'app1': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bms',# 要连接的数据库,连接前需要创建好
'USER': 'root',# 连接数据库的用户名
'PASSWORD': '',# 连接数据库的密码
'HOST': '127.0.0.1', # 连接主机,默认本级
'PORT':3306# 端口 默认3306
},
'app2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bms',# 要连接的数据库,连接前需要创建好
'USER': 'root',# 连接数据库的用户名
'PASSWORD': '',# 连接数据库的密码
'HOST': '127.0.0.1', # 连接主机,默认本级
'PORT':3306# 端口 默认3306
}
}

不同app 可以配置不同的数据库


             (3)数据库迁移

                python manage.py  makemigrations
python manage.py migrate KEY: Django在执行迁移命令时只会为settings中install_app中的应用中的models创建表结构 3 启动项目: python manage.py runserver 二 表记录操作 (1) 添加记录
# 方式1
book=Book(title="",price="",publish="",pub_date="2012-12-12")
book.save()
# 方式2
book=Book.objects.create(title="",price="",publish="",pub_date="2012-12-12")
print(book.id)
print(book.title) (2) 查询记录 KEY:queryset数据类型 Book.objects.all() # 返回queryset对象 [obj,obj2,obj3,...]
Book.objects.all()first() # Book模型类对象
Book.objects.all().last() # Book模型类对象
Book.objects.filter(title="python") # 返回queryset对象 [obj,obj2,obj3,...]
Book.objects.get(title="python") # Book模型类对象
Book.objects.exclude(title="python") # 返回queryset对象 [obj,obj2,obj3,...]
Book.objects.all().count() # 返回int
Book.objects.all().order_by("-price")# 返回queryset对象
Book.objects.all().order_by("-price").reverse() # 返回queryset对象
Book.objects.all().exist() # 返回布尔值
Book.objects.all().values("title") # 返回queryset对象 [{"title":""},{"title":""}]
Book.objects.all().values_list("title","price") # 返回queryset对象 [("python",122),("linux",233)]
Book.objects.all().values("price").distinct() 模糊查询:
Book.objects.filter(price__gt=100)
Book.objects.filter(price__lt=100)
Book.objects.filter(price__in=[100,200,300])
Book.objects.filter(price__range=[100,200])
Book.objects.filter(title__startswith="py")
Book.objects.filter(title__contains="py")
Book.objects.filter(title__icontains="py")
Book.objects.filter(pub_date__year="2012") (3) 删除 Book.objects.all().delete()
Book.objects.get(id=1).delete()
(4) 更新 Book.objects.filter(id__gt=5).update(price=100) 例子:
1 查询老男孩出版社出版过的价格大于200的书籍
Book.objects.filter(price__gt=200,publish="老男孩出版社") 2 查询2017年8月出版的所有以py开头的书籍名称
Book.objects.filter(title__startswith="py",pub_date__year=2017,pub_date__month=8).values("title") 3 查询价格为50,100或者150的所有书籍名称及其出版社名称
Book.objects.filter(price__in=[50,100,150]).values("title","publish") 4 查询价格在100到200之间的所有书籍名称及其价格
Book.objects.filter(price__range=[100,200]).values("title","price") 5 查询所有人民出版社出版的书籍的价格(从高到低排序,去重)
Book.objects.filter(publish="人民出版社").order_by("-price").values("price").distinct()

单表查询连接数据库具体步骤:

1.创建表,在app model.py文件中,创建

2.数据库中,先创建好库,命名为bms

3.配置settings

4.确保配置文件中已经配置好了自己的应用

5.app 应用中,__init__.py 文件中加上:

import pymysql

pymysql.install_as_MySQLdb()
6.执行
python manage.py makemigrations

python manage.py migrate
7.可能出现的问题和解决办法

54 Django 模型层(1) 单表查询的更多相关文章

  1. Django模型层之单表操作

    Django模型层之单表操作 一 .ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软 ...

  2. day 69 Django基础五之django模型层(一)单表操作

    Django基础五之django模型层(一)单表操作   本节目录 一 ORM简介 二 单表操作 三 章节作业 四 xxx 一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现 ...

  3. day 55 Django基础五之django模型层(一)单表操作

      Django基础五之django模型层(一)单表操作   本节目录 一 ORM简介 二 单表操作 三 章节作业 四 xxx 一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它 ...

  4. Django框架之第六篇(模型层)--单表查询和必知必会13条、单表查询之双下划线、Django ORM常用字段和参数、关系字段

    单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2 ...

  5. Django模型层:单表操作,多表操作,常用(非常用)字段和参数,Django-model进阶

    一.web应用 二.模板的导入与继承 三.静态文件相关 四.inclusion_tag:返回html片段 五.模型层 一.web应用 -s包括两个部分:web服务器+application -目前阶段 ...

  6. Django模型层:多表查询

    一 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关 ...

  7. Django基础五之django模型层(一)单表操作

    一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  8. django模型层 关于单表的增删改查

    关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...

  9. 05.Django基础五之django模型层(一)单表操作

    一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  10. django——模型层之单表

    1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

随机推荐

  1. Request 对象 response 对象 常见属性

    请求和响应 Express 应用使用回调函数的参数: request 和 response 对象来处理请求和响应的数据. app.get('/', function (req, res) { // - ...

  2. jquery easyUI相关

    jquery easyUI相关===================================easyUI表单验证处理//jquery easyUI 表单验证不通过让光标定位在第一个未通过验证的 ...

  3. Js基础知识1-数组操作全解

    数组操作全解 js变量类型 var string; var name = "student",age=12; //underfined.null.boolean.string.nu ...

  4. mysql 触发器 trigger用法 four

    实验4 触发器 (1)实验目的 掌握数据库触发器的设计和使用方法 (2)实验内容和要求 定义BEFORE触发器和AFTER触发器.能够理解不同类型触发器的作用和执行原理,验证触发器的有效性. (3)实 ...

  5. Sony/索尼 NW-ZX300A ZX300 无损音乐播放器4.4口

    https://item.taobao.com/item.htm?spm=a1z0d.7625083.1998302264.6.5c5f4e69ELHOcm&id=557859816402 ( ...

  6. 20145310《网络对抗技术》Exp6 信息搜集技术

    实验内容 本次实验的目标是掌握信息搜集的最基础技能.具体有 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 ( ...

  7. KEIL中常见问题

    1:..\Obj\phone.axf: Error: L6218E: Undefined symbol err (referred from gprs.o). 函数中定义的外部变量,找不到其源 即在g ...

  8. 网站精准查询IP

    分享一些网站能精准查询IP的 https://www.chaidu.com/App/Web/IP/ http://www.ipip.net/ip.html http://www.hao7188.com ...

  9. 【前端】javascript+jquery实现手风琴式的滚动banner或产品展示图

    实现效果 实现步骤 // 鼠标放入到li中该盒子变宽,其他盒子变窄,鼠标移开大盒子,恢复原样 // 实现步骤 // 1. 给li添加背景 // 2. 绑定onmouseover事件,鼠标放入到li中, ...

  10. Ubuntu16.04 无法连接WiFi

    在安装完 ns-3.25 之后,着手开始准备 Eclipse 的安装,打开了 Firefox游览器 准备上网的时候,发现网络没有正常连接. 刚刚开始怀疑的是,并没有连接上网络. 于是打开了终端,pin ...