1 django操作数据库
1.1创建表和字段
from django.db import models class Blog_Model(models.Model): name = models.CharField(db_column='name', max_length=200, blank=True, verbose_name='name')
num = models.IntegerField(db_column='num', blank=True, verbose_name='num')
class Meta: db_table = 'Blog' # db_table--重写数据表名称
- 注:在类里面不指定主键字段,django会帮您自动创建一个id主键!
- 默认情况下,Django 会根据模型类的名称和包含它的应用的名称自动指定数据库表名称。eg:blog_type(blog:APP名称,type:模型类名称)
- 使用 Meta类中的 db_table 参数来重写数据表的名称
1.2增
Blog_Model.objects.create(name='zz', num=4)
Blog_Model(name='aa', num=3).save()
blog, b = Blog_Model.objects.get_or_create(id=1, name='ww', num=1)
get_or_create
顾名思义,查询或者创建一条数据,首先是执行的时候首先会去查询有没有这个值,如果有就返回,没有就创建。get_or_create
会返回一个tuple,第一个值是查到或者创建的数据,第二个值是一个布尔,表示是否执行了创建操作。- 在进行查询的时候和使用get查询类似,当查到超过一条数据的时候会触发MultipleObjectsReturned。
- 创建的时候也和使用create创建类似。
- 如果你正在使用MySQL,请确保使用READ COMMITTED 隔离级别而不是默认的REPEATABLE READ,否则你将会遇到get_or_create 引发IntegrityError 但对象在接下来的get() 调用中并不存在的情况。
1.3删
Blog_Model.objects.filter(id=2).delete()
1.4改
Blog_Model.objects.filter(id=4).update(name='jj')