Django-ORM数据库操作
背景
Django框架功能齊全自帶數據庫操作功能,由于工作中設計巨量的api接口,需要一個很好的web后端服務框架,Django給了莫大的幫助。本文主要介紹Django的ORM框架
我們一般對數據庫的使用的認識是:
- 創建數據庫,設計表結構和字段
- 使用 MySQLdb 來連接數據庫,并編寫數據訪問層代碼
- 業務邏輯層去調用數據訪問層執行數據庫操作
ORM是什么?
ORM:Object Relational Mapping(關系對象映射),在django中,根據代碼中的類自動生成數據庫的表也叫--code first。
- 類名對應------》數據庫中的表名
- 類屬性對應---------》數據庫里的字段
- 類實例對應---------》數據庫表里的一行數據
- obj.id obj.name.....類實例對象的屬性
Django ORM的優勢:
Django的orm操作本質上會根據對接的數據庫引擎,翻譯成對應的sql語句;所有使用Django開發的項目無需關心程序底層使用的是MySQL、Oracle、sqlite....,如果數據庫遷移,只需要更換Django的數據庫引擎即可。
總的來說,Django的ORM 在設計初已經考慮了大量web設計中數據庫操作的共有需求,配置好數據庫后,就可以像使用變量模型一樣操作數據庫中數據。
一、數據庫配置(MySQL)
1、創建數據庫 (注意設置 數據的字符編碼)
由于Django自帶的orm是data_first類型的ORM,使用前必須先創建數據庫
2、修改project中的settings.py文件中設置 連接 MySQL數據庫(Django默認使用的是sqllite數據庫)
擴展:查看orm操作執行的原生SQL語句,在project中的settings.py文件增加。
LOGGING = {'version': 1,'disable_existing_loggers': False,'handlers': {'console':{'level':'DEBUG','class':'logging.StreamHandler',},},'loggers': {'django.db.backends': {'handlers': ['console'],'propagate': True,'level':'DEBUG',},} }3、由于Django2.X后只支持python3,而目前MySQLdb對python3沒有支持,所以需要使用pymysql,在django項目中修改project 中的__init__py 文件設置 Django默認連接MySQL的方式
import pymysql pymysql.install_as_MySQLdb()4、setings文件注冊APP
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config',]注冊APP后,Django會根據APP的名稱等生成并使用表/庫。Django中數據庫必須有非空主鍵,而且如果沒有聲明,所有的字段都會默認設計成非空。
注:由于所有字段都默認是非空,所以在增加字段時會報錯,
解決辦法是增加:null=Ture,聲明。
總結
以上是生活随笔為你收集整理的Django-ORM数据库操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quartz业务类无法注入Spring对
- 下一篇: 2015-03-19 create ph