1.创建模型类流程
from django.db import models
class 模型类名(models.Model)
字段名 = models.字段类型(字段选项)
注意:任何关于表结构的修改,务必在对应模型类上修改
例:为bookstore_book表添加一个名为info的字段varchar(100)
models.py
class Book(models.Model):
title = models.CharField('书名',max_length=50,default='')
price = models.DecimalField('价格',max_digits=7,decimal_places=2)
info = models.CharField('描述',max_length=100,default='')
2.模型类——字段类型
(1)BooleanFiled()
数据库类型:tintint(1)
编程语言中:使用True或False来表示值
在数据库中,使用1或0来表示具体的值
(2)CharField()
数据库类型:varchar
注意:必须要指定max_length参数值
(3)DataField()
数据库类型:date
作用:表示日期
参数:
以上三个参数只能多选一
1.模型类——字段选项
字段选项,指定创建的列的额外的信息
允许出现多尔字段选项,多个选项之间使用,隔开
primary+key
如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数据库表不会创建id字段
blank
设置为True时,字段可以为空。设置为False时,字段是必须填写的
null
如果设置为True,表示该列值允许空。
默认为False,如果此选项为False建议i加入defalut选项来设置默认值
default
设置所在列的默认值,如果字段选项null=False建议添加此项
db_index
如果设置为True,表示为该列增加索引
unique
如果设置为True,表示该字段在数据库中的值必须是唯一的
db_column
指定列的名称,如果不指定的话则采用属性名作为列名
verbose_name
设置此字段在admin界面上的显示名称
还有许多及不一一列举了
字段选项样例:
创建一个属性,表示用户名称,长度30个字符,必须是唯一的,不能为空,添加索引
name = models.CharField(max_length=30,unique=True,null=False,db_index=True)
好习惯:修改过字段选项【添加或更改】均要执行
makemigrations和migrate
2.模型类——Meta类
使用内部Meta类来给模型赋予属性,Meta类下有很多内建的类属性,可对模型类做一些控制
实例:
from django.db import models
# Create your models here.
class Book(models.Model):
title = models.CharField('书名',max_length=50,default='')
price = models.DecimalField('价格',max_digits=7,decimal_places=2)
info = models.CharField('描述',max_length=100,default='')
class Meta:
db_table = 'book' #可改变当前模型类对应的表名
1.新手常见问题汇总
2.ORM操作
基本操作包括增删查改操作,即(CRUD操作)
CRUD是指在做计算处理是的增加(Create)、读取查询(Read)、更新(Update)和删除(Delete)
ORM CRUD核心——>模型类.管理器对象
每个继承自models.Model的模型类,都忽悠一个objects对象被同样继承下来,这个对象叫管理器对象。
数据库的增删查改可以通过模型的管理器实现
class MyModels(models.Model):
MyModels.objects.create() #objects是管理器对象
创建数据
Django ORM使用一种直观的方式把数据库表中的数据表示乘Python
创建数据中每一个记录就是创建一个数据对象
方案一:
MyModels.objects.create(属性1=值1,属性2=值2)
成功:返回创建好的实体对象
失败:抛出异常
方案2:
创建MyModel实例对象,并调用save()进行保存
obj = MyModel(属性=值,属性=值)
obj.属性 = 值
obj.save()
3.Django shell
在Django提供了一个交互式的操作项目叫Django Shell它能够在交互模式用项目工程的代码执行相应的操作
利用Django shell可以代替编写view的代码来直接操作
注意:项目代码发生变化时,重新进入Django shell
启动方式:
python manage.py shell
案列:
导入bookstore app中的models Book类的表
from bookstore.models import Book
第一种导入数据的方式:
b1 = Book.objects.create(title='python',pub='清华大学出版社',price=20,market_price=25)
再输入:b1
第二种导入表的方式:
b2 = Book(title='Django',pub='清华大学出版社',price=70)