Django-13 ORM-创建数据
2021-07-14 本文已影响0人
JuliusL
常见问题汇总:
-
问题1:当执行python3 manage.py makemigrations出现如下迁移错误时的处理方法
-
问题2:数据库的迁移文件混乱的解决办法
- 数据库中django_migrations表记录了migrate的全过程,项目各应用中的migrate文件应与之对应,否则migrate会报错
- 解决方案:
- 删除所有migrations里的所有000?_xxxx.py(_init_.py除外)
- 删除数据库
sql> drop database mywebdb; - 重新创建数据库
sql> create database mywebdb default charset...; - 重新生成migrateions里所有的0002_xxxx.py
python3 manage.py makemigrations - 重新更新数据库
python3 manage.py migrate
管理器对象
每个继承自models.Model 的模型类,都会有一个objects对象被同样继承下来。这个对象叫管理器对象
数据库的增删改查可以通过模型的管理器实现
class MyModel(models.Model):
...
MyModel.objects.create(...) #objects 是管理器对象
创建数据
Django ORM使用一种直观的方式把数据库表中的数据表示成Python对象
创建数据中每一条记录就是创建一个数据对象
方案1
MyModel.objects.create(属性1=值1,属性2=值2,...)
- 成功:返回创建好的实体对象
- 失败:抛出异常
方案2
创建MyModel实例对象,并调用save()进行保存
obj = MyModel(属性=值,属性=值)
obj.属性 = 值
obj.save()
Django Shell
在Django提供了一个交互方式的操作项目叫Django Shell,它能够在交互模式用项目工程的代码执行相应的操作
利用Django Shell可以代替编写view的代码来进行直接操作
注意:项目代码发生变化时,重新进入Django Shell
启动方式:
python3 manage.py shell
liujiadeMacBook-Pro:mysite1 liujia$ python3 manage.py shell
>>> from bookstore.models import Author
>>> Author.objects.create(name='王老师',age=28,email='wangweichao@tedu.cn')
<Author: Author object (1)>