django基礎 第五章 Django連接數據庫
阿新 • • 發佈:2019-02-25
如果 用戶 earch 遷移 執行 mage go基礎 delet get
第五章 Django連接數據庫
1 連接配置
django 連接mysql的配置流程:
安裝 pymysql pip install pymysql
創建數據庫用戶(有創建數據庫權限)
創建數據庫
修改配置settings
修改項目文件夾(和settings.py文件所在的目錄)下__init__.py 文件
寫上:import pymysql pymysql.install_as_MySQLdb()
設置時區 TIME_ZONE = ‘Asia/ShangHai‘ # 北京時間
2 django的ORM系統
ORM概念:對象關系映射(Object Relational Mapping,簡稱ORM)
ORM的優勢:不用直接編寫SQL代碼,只需像操作對象一樣從數據庫操作數據。
django模型映射關系:
模型類必須都寫在app下的models.py文件中。
模型如果需要映射到數據庫,所在的app必須被安裝.
一個數據表對應一個模型類,表中的字段,對應模型中的類屬性.
2 模型的創建與激活
創建模型
? 每一個模型都是django.db.models.Model的子類
? 類變量 表示模型中的數據庫字段
? 每一個字段由一個字段類的實例表示
激活模型
項目中註冊app
在settings.py中配置DATABASES
運行數據庫遷移命令(一定要在項目根目錄下)
python mange.py makemigrations teacher # 將模型類映射到數據庫(其中teacher為指定映射,不寫默認全部映射) python manage.py migrate # 將映射文件中的映射數據提交到數據庫中
打開數據我們能看到創建的以app名_模型名的數據表,而其他的一些表格是django自動生成的.
註意:如果要刪除表,那麽可以去django模型中註釋掉模型類,然後執行映射的命令,不要手動在命令行裏面去刪除.
4.數據的增刪改查
-工具 django shell 調試
python manage.py shell
增
from movie.models import Movie # movie為app名,Movie為模型類 def add_date(request): # 方法一 movie_1 = Movie(name="情聖", time=2010) # 模型類的實例 movie_1.save() # 方法二 movie_2 = Movie() movie_2.name = '毒液' movie_3.time = 2016 # 方法三 Movie.objects.create(name="貞子", time=2001) # 方法四 Movie.object.get_or_create(name="賭聖", time=2004) return HttpResponse('插入數據')
刪
def delete_date(request):
# 條件刪除
Movie.objects.get(time=2010).delete()
Movie.objects.filter(name="情聖")。delete()
# 全刪除
Movie.objects.all().delete()
return HttpResponse('刪除成功')
改
def update_date(request):
# 方法一:先查找對象後修改
rs = Movie.objects.get(name="賭聖")
rs.name = '賭聖2'
rs.save()
# 方法二:直接修改
Movie.objects.filter(name="賭聖").update(name="賭聖2")
# 全部修改
Movie.objects.all().update(time=2010)
return HttpResponse('修改成功')
查
all()和filter()方法返回的是QuerySet對象.
get()方式返回的單個對象,如果符合條件的對象有多個,則get報錯!
def search_date(request):
# 查詢所有數據對象
re = Movie.objects.all()
# 查詢一個數據對象
re = Movie.objects.get(time=2001)
# 查詢滿足條件的對象
re = Movie.objects.filter(name="情聖")
print(re)
return HttpResponse('查詢成功')
django基礎 第五章 Django連接數據庫