单表操作  

  -mysql数据库:settings里配置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
# 'default': {
# 'ENGINE': 'django.db.backends.mysql',
# 'NAME': 'day76',
# 'HOST': '127.0.0.1',
# 'PORT': 3306,
# 'USER': 'root',
# 'PASSWORD': 'nuanxin',
# }
}

  -在init文件中:

import pymysql

# 因为Django默认连接mysql数据库,用的是MySQLdb,python3.0以后不支持MySQLdb,需要用pymysql替换
pymysql.install_as_MySQLdb()

  -在models中,写类,写类的属性

from django.db import models

# Create your models here.

# 创建表与表的字段 Field来表明这些字段是什么类型
class Book(models.Model): # 类对应数据库的表
  # Auto自动递增 字段,对应数据库是一个列
id = models.AutoField(primary_key=True)
  # Char变量类型
name = models.CharField(max_length=32)
  # Decimal生成的字段 digits最大长度的位数 place小数点后几位
price = models.DecimalField(max_digits=5, decimal_places=2)
 # publish出版社
publish = models.CharField(max_length=32)
  # author作者
author = models.CharField(max_length=32)

  -数据库迁移

    python

  -新增表,删除表,新增字段,删除字段 ---> 执行数据库迁移的两条命令

    1.单表增:

      -两种方式

    2.单表修改:

      -先查询出来,然后update(queryset对象的方法)

      -对象要更新,用save方法

    3.单表删除:

      -先查询出来,然后delete(queryset对象和模型对象的方法)

      *****用queryset删除,修改的时候,一定要注意数据是几条

      -删除数据表中所有数据:Book.object.all().delete()单表查询

    4.单表查询(API):  

<1> all():                  查询所有结果

<2> filter(**kwargs):       它包含了与所给筛选条件相匹配的对象

<3> get(**kwargs):          (有且只有一条数据) 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。

<4> exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象

<5> order_by(*field):       对查询结果排序('-id')

<6> reverse():              对查询结果反向排序

<8> count():                返回数据库中匹配查询(QuerySet)的对象数量。

<9> first():                返回第一条记录

<10> last():                返回最后一条记录

<11> exists():              (查询一个结果是否有数据) 如果QuerySet包含数据,就返回True,否则返回False

<12> values(*field):        (字典里面有name,有id) 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
model的实例化对象,而是一个可迭代的字典序列
<13> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 <14> distinct(): 从返回结果中剔除重复纪录

  -单表基于双下划綫模糊查询 

Book.objects.filter(price__in=[100,200,300])
Book.objects.filter(price__gt=100)
Book.objects.filter(price__lt=100)
Book.objects.filter(price__gte=100)
Book.objects.filter(price__lte=100)
Book.objects.filter(price__range=[100,200])
Book.objects.filter(title__contains="python") --->% python %
Book.objects.filter(title__endswith="py") --->%py
Book.objects.filter(title__startswith="py") --->py%
Book.objects.filter(title__icontains="python") --->忽略大小写
Book.objects.filter(pub_date__year=2012,pub_date_month=12)

     

  

Django day07 (二)单表操作的更多相关文章

  1. Django模型层-单表操作

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

  2. Django框架之单表操作

    一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",cou ...

  3. Django【第6篇】:Django之ORM单表操作(增删改查)

    django之数据库表的单表查询 一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name =& ...

  4. Django(ORM单表操作)

    默认使用sqllite数据库 修改为mysql数据库 创建数据库 在app models中编写创建数据库类 from django.db import models class Book(models ...

  5. Django图书管理系统(单表操作)

    以下内容需要掌握: Python3 以及前端:HTML,CSS,jQuery,BootStrap,Django,JavaScript 开启Django新项目: 1,settings.py 数据库选择: ...

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

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

  7. Django模型层:单表操作

    一 ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装

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

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

  9. 05 Django之模型层---单表操作

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

随机推荐

  1. swift class protocol-限定协议只能由类实现

    protocol GameMode:class “You can limit protocol adoption to class types (and not structures or enume ...

  2. 如何将本地项目上传到gitlab上?

    git push后需要输入用户名,密码 这是上传成功显示的页面 打开gitLab项目地址检查代码是否被正确上传 上传前: 上传后 这就完成将项目上传到gitlab了

  3. linux修改hosts配置

    参考 https://blog.csdn.net/qq_15192373/article/details/81093542 1. terminal中输入: sudo gedit /etc/hosts ...

  4. cesium的学习

    一.学习资料:http://cesiumjs.org/tutorials.html,看完6个教程后对图层加载.控件控制开关.地形数据叠加.模型添加.相机控制.图形绘制有一点了解.这也是cesium的主 ...

  5. VUE路由history模式坑记--NGINX

    因微信分享和自动登录需要,对于URL中存在'#'的地址,处理起来比较坑(需要手动写一些代码来处理).还有可能会有一些隐藏的问题没被发现. 如果VUE能像其他(JSP/PHP)系统的路径一样,就不存在这 ...

  6. NGINX+PHP-FPM7 FastCGI sent in stderr: “Primary script unknown”

    https://www.cnblogs.com/hjqjk/p/5651275.html 一开始是Nginx打开网页显示一直是拒绝访问.查看nginx日志是报错显示我的题目,然后就各种搜索解决啊! 百 ...

  7. 【转载】resolv.conf中search作用

    原文地址:http://www.oliver.ren/linux/387.html reslov.conf中的search主要是用来补全hostname的,有时候域名太长,可以做一个短域名做主机名字, ...

  8. 16.2 【C# 5】调用者信息特性

    16.2.1 基本行为 .NET 4.5引入了三个新特性(attribute),即 CallerFilePathAttribute . CallerLineNumber- Attribute 和 Ca ...

  9. WebService附加到IIS调试,未命中断点

    写好了一个WebService,部署到IIS上,用浏览器访问发现并不能命中断点. 经过多次的查找发现是由于附加的代码类型选择错误. 下图由于错误的选择了托管代码,导致调试时不命中断点,勾选自动解决.

  10. 【原创】使用HTML5+canvas+JavaScript开发的原生中国象棋游戏及源码分享

    目前已经实现的功能: V1.0 : 实现棋子的布局,画布及游戏场景的初始化V2.0 : 实现棋子的颜色改变V3.0 :实现所有象棋的走棋规则V4.0 : 实现所有棋子的吃子功能 GItHub源码下载地 ...