Loading

Web接口开发与自动化测试 - 操作数据库

# 发布会表
class Event(models.Model):
name = models.CharField(max_length=100)
limit = models.IntegerField(default=100)
status = models.BooleanField(default=False)
address = models.CharField(max_length=200)
start_time = models.DateTimeField('events time')
create_time = models.DateTimeField(auto_now=True)

def __str__(self):
return self.name

1.进入数据库shell模式

python manage.py shell

 

2.查询表所有数据

tablename.objects.all()

 

3.插入数据

方式1: 先创建后保存

  以Event表为例

  首先我们需要导入model表

    from sign.models import Event

  其次我们创建表数据

  from datetime import datetime

  e1 = Event(id=2,name="测试发布会",limit=2000,status=True,address="测试地址",start_time=datetime(2019,11,20,0,45))

  最后我们保存表信息

  e1.save()

方式2:直接保存

  tablename.objects.create()

  还是以Event为例:

  Event.objects.create(id=2,name="测试发布会",limit=2000,status=True,address="测试地址",start_time=datetime(2019,11,20,0,45))

 

4.查询数据

# 如果记录不存在报错:DoesNotExist

tablename.objects.get()

  以Event为例:

  Event.objects.get(name="测试发布会")

 

5.模糊查询

# 如果记录不存在返回空列表

tablename.objects.filter()

  以Event为例:

  Event.objects.filter(name="测试发布会")

 

6.删除数据

先查询后删除

e2 = Event.objects.get(name="测试发布会")   #需要完全匹配

e2.delete()

 

7.更新数据

方式1:先查询后更新

e3 = Event.objects.get(name="测试发布会")

e3.name="测试发布会2"

e3.save()

 

方式3:直接更新

tablename.objects.select_for_update().filter(属性=).update(属性=)

  以Event为例:

  Event.objects.select_for_update().filter(name="测试发布会").update(name="测试发布会2")

 

posted @ 2019-11-20 01:05  Tester-Dolores  阅读(50)  评论(0编辑  收藏  举报