在使用django 框架開發web應用的過程中,不可避免的會涉及到資料的管理操作,如增刪改查,使用的資料庫管理軟體有mysql.oracle,microsoft sql server等.
編寫sql語句的時候,直接編寫原生sql語句會存在幾個方面的問題,嚴重的影響了開發效率,
'''
1. sql語句執行效率低,程式設計師需要耗費精力去優化sql語句
2.資料庫遷移:針對mysql開發的sql語句沒法直接應用到oracle資料庫上,只要需要遷移資料庫,就要考慮平台問題
'''
它在pymysql上進行一層封裝,對於資料操作,不需要再去寫原生sql語句,
我們可以基於物件導向的思想去編寫類,物件,呼叫相應的方法,orm會將這個轉換,對映成原生sql然後交給pymysql執行.
先去建立資料庫.
mysql> create database hello world
在settings.py中去配置資料庫,
databases =
}}
django orm底層運算元據庫python模組預設是mysqldb模組,所以之後將mysqldb模組改為pymysql模組
在__init__.py裡面新增兩行**
import pymysql
pymysql.install_as_mysqldb() # 替換
4.如果你向檢視orm語句內部真正的sql語句有兩種方式
1.如果是queryset物件 可以直接點query檢視
2.配置檔案中 直接配置
logging = ,
},'loggers': ,
}}
在模型層裡面建立表
from django.db import models
class book(models.model):
titile = models.charfield(max_length=32)
price = models.decimalfield(max_digists=8,decimal_places=2)
publish_date = models.datefield()
# 在定義乙個__str__列印物件的時候便於識別
def __str__(self):
return self.name+'物件'
生成資料庫遷移記錄的檔案,而且是放在migrations資料夾裡的
python manage.py makemigrations
真正提交到資料庫命令
python manage.py migrate
開始操作之前配置一下django測試環境可以提高開發效率
from djang.test import testcase
import os
if __name__ =="__main__":
import django
orm查詢
"""
logging = ,
},
'loggers': ,
}}
django測試環境搭建
import os
if __name__ == "__main__":
os.environ.setdefault("django_settings_module", "one_search.settings")
import django
django.setup()
# 你就可以在下面測試django任何的py檔案
Django ORM基礎操作
jquery dom d1 自動翻譯 document.getelementbyid d1 databases import pymysql 告訴django用pymysql來代替預設的mysqldb pymysql.install as mysqldb mysqldb不支援中py3 class 類...
Django orm的正向反向操作
通過values 和values list來操作的 class utype models.model title models.charfield max length 32 ucap models.foreignkey ubumen class uinfo models.model name mo...
Django ORM 中的批量操作
from django.db import models class product models.model name models.charfield max length 200 price models.decimalfield max digits 10,decimal places 2 ...