Django day07 (二)单表操作
2024-10-01 03:49:49
单表操作
-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)
最新文章
- dubbo 常见错误
- Java,double类型转换成String,String装换成double型
- OC内存管理
- WebStorm里面配置运行React Native的方案
- AngularJS的学习--ng-show/ng-hide/ng-if和ng-switch
- 百度分页样式代码 css+c#
- Python strip、lstrip和rstrip的用法
- Ubuntu 下误修改用户组导致sudo命令无效
- 2.session与cookie的区别?
- Android最佳性能实践(一)——合理管理内存
- 【CocoaPods】CocoaPods基本安装教程
- 核心概念 &mdash;&mdash; 服务容器
- Word Break II——LeetCode
- autoprefixer安装或者里sass的$mixin处理浏览器前缀
- jquery 超简单的点赞效果
- 10张思维导图带你学习Java​Script
- python3 调用 Linux 脚本
- github删除
- Prior Posterior和Likelihood的理解与几种表达方式
- bgfx入门练习2——找出DX,OpenGL驱动切换实现原理
热门文章
- HDU_1026_Ignatius and the Princess I_BFS(保存路径)
- Python 之数据类型
- session_start(): open(/var/lib/php/session/sess_tlrp3cpro7gun9uhno8n6futr3, O_RDWR)
- Luogu P2068 统计和
- Django cookie、session使用
- 【codeforces 785D】Anton and School - 2
- springboot优雅的关闭应用
- php 数组 array()
- Top10Servlet
- Android 65K问题之Multidex原理分析及NoClassDefFoundError的解决方法