美文网首页django
Django-13 ORM-创建数据

Django-13 ORM-创建数据

作者: JuliusL | 来源:发表于2021-07-14 07:21 被阅读0次

    常见问题汇总:

    • 问题1:当执行python3 manage.py makemigrations出现如下迁移错误时的处理方法
    • 问题2:数据库的迁移文件混乱的解决办法

    • 数据库中django_migrations表记录了migrate的全过程,项目各应用中的migrate文件应与之对应,否则migrate会报错
    • 解决方案:
      1. 删除所有migrations里的所有000?_xxxx.py(_init_.py除外)
      2. 删除数据库
        sql> drop database mywebdb;
      3. 重新创建数据库
        sql> create database mywebdb default charset...;
      4. 重新生成migrateions里所有的0002_xxxx.py
        python3 manage.py makemigrations
      5. 重新更新数据库
        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)>
    

    相关文章

      网友评论

        本文标题:Django-13 ORM-创建数据

        本文链接:https://www.haomeiwen.com/subject/kynkpltx.html