Django-13 ORM-創建數據 管理器對象 創建數據 Django Shell

常見問題彙總:

  • 問題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='[email protected]')
<Author: Author object (1)>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章