单表操作  

  -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)

     

  

最新文章

  1. dubbo 常见错误
  2. Java,double类型转换成String,String装换成double型
  3. OC内存管理
  4. WebStorm里面配置运行React Native的方案
  5. AngularJS的学习--ng-show/ng-hide/ng-if和ng-switch
  6. 百度分页样式代码 css+c#
  7. Python strip、lstrip和rstrip的用法
  8. Ubuntu 下误修改用户组导致sudo命令无效
  9. 2.session与cookie的区别?
  10. Android最佳性能实践(一)——合理管理内存
  11. 【CocoaPods】CocoaPods基本安装教程
  12. 核心概念 &mdash;&mdash; 服务容器
  13. Word Break II——LeetCode
  14. autoprefixer安装或者里sass的$mixin处理浏览器前缀
  15. jquery 超简单的点赞效果
  16. 10张思维导图带你学习Java​Script
  17. python3 调用 Linux 脚本
  18. github删除
  19. Prior Posterior和Likelihood的理解与几种表达方式
  20. bgfx入门练习2——找出DX,OpenGL驱动切换实现原理

热门文章

  1. HDU_1026_Ignatius and the Princess I_BFS(保存路径)
  2. Python 之数据类型
  3. session_start(): open(/var/lib/php/session/sess_tlrp3cpro7gun9uhno8n6futr3, O_RDWR)
  4. Luogu P2068 统计和
  5. Django cookie、session使用
  6. 【codeforces 785D】Anton and School - 2
  7. springboot优雅的关闭应用
  8. php 数组 array()
  9. Top10Servlet
  10. Android 65K问题之Multidex原理分析及NoClassDefFoundError的解决方法