aweilark 2019-12-26
使用django自带的轻量级数据库sqlite
mvc 开发模式(Java,php) django是mtv模式
m------model 操作数据库的 m------model 操作数据库的
v------view视图 t------template视图
c------controller控制逻辑 v------view控制逻辑
1.首先定义表及字段 在models.py中,然后在manage.py的目录执行,后续对表结构的任何操作都需要执行下面这两个命令
python3 manage.py makemigrations(生成数据文件)
python3 manage.py migrate(生成表结构)
2.管理后台操作数据库 需要在admin.py中增加,如下所示,就可以在后台管理中给表添加删除数据了
3.创建数据库完成后可以对数据库进行一些常规操作(增删改查)
批量数据的删除和添加操作不需要 调用save
all,filter和exclude 返回的数据都是批量的(一个列表)
取一条数据就是取下标,取一条数据里面某个字段的元素直接.xxx(xxx是字段名)
import django,os os.environ.setdefault(‘DJANGO_SETTINGS_MODULE‘,‘dj_mh.settings‘) django.setup() from user.models import Category from django.db.models import Q #添加数据 #第一种添加方式 # Category.objects.create(name=‘python‘)#新增数据,create_time,update_time不需要添加 #第二种添加方式 实例一个对象然后 调用save方法 # obj = Category(name=‘mysql‘) # obj.save() # obj1 = Category.objects.create(name=‘mysql1‘) # print(obj1.name) # print(obj1.create_time) # print(obj1.update_time) #查询数据(获取字段信息的话查询出一条数据后.‘字段名‘) # Category.objects.all()#查询全部 # #get方法只能返回一条数据 # obj_get = Category.objects.get(id=1)#获取一条数据 括号里是查询条件 # print(Category.objects.get(name=‘python‘))#获取一条数据 括号里是查询条件 # print(obj_get.name) #filter返回符合条件的多条数据 # obj_filter = Category.objects.filter(id__gt=1) # print(obj_filter)#返回一个list 如果取单个元素可以通过下标方式获取 # #exclude返回不符合条件的多条数据 # obj_exculde = Category.objects.exclude(id__gt=1) # print(obj_exculde)#返回一个list 如果取单个元素可以通过下标方式获取 # obj_exculde.first()#取列表的第一个元素 # obj_exculde.last()#取列表的最后一个元素 #id__gt=1(id大于1) #id__lt=1(id小于1) #id__gte=1(id大于等于1) #id__lte=1(id小于等于1) # print(Category.objects.filter(name__startswith=‘l‘))#以l开头的 # print(Category.objects.filter(name__endswith=‘x‘))#以x结尾的 #name__ixxxxx与name__xxxx都是找包含‘xxxx‘的,只不过i不区分大小写 #以i开头的都是不区分大小写的 # print(Category.objects.filter(name__iendswith=‘e‘)) # print(Category.objects.filter(name__endswith=‘E‘)) #in 会查询出在list中的 # print(Category.objects.filter(name__in=[‘linux‘,‘db2‘])) #or 查询 需要引用一下 # print(Category.objects.filter(Q(name=‘mysql‘)|Q(name=‘oracle‘))) #修改(修改批量数据不需要save) # Category.objects.update(dress=‘dog‘)#修改全表数据 # Category.objects.update(is_delete=True)# #修改一条数据 # obj = Category.objects.get(name=‘首页‘) # obj.dress = ‘cat‘ # obj.save() #删除(删除批量数据不需要save) # Category.objects.all().delete()#删除所有数据 # Category.objects.filter(name__in=[‘mysql‘,‘oracle‘]).delete() #删除一条数据 # obj = Category.objects.get(name=‘mysql1‘) # obj.delete() #排序 # print(Category.objects.all().order_by(‘name‘))#升序 # print(Category.objects.all().order_by(‘-name‘))#降序