1. 程式人生 > >Django+MySQL:同步已存在的表 實現增、刪、改、查

Django+MySQL:同步已存在的表 實現增、刪、改、查

一、建立連線

開啟專案settings.py,找到DATABASES字典。default預設使用的是sqlplite3,修改驅動為mysql。

mysql預設埠號是3306,可通過命令檢視。name是要匯入的資料庫名稱

mysql> show global variables like 'port'
  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql',
  4. 'NAME': 'qcwy',
  5. 'USER':'root',
  6. 'PASSWORD':'system',
  7. 'HOST':'127.0.0.1',
  8. 'PORT':'3306',
  9. }
  10. }

二 同步已存在的表

使用命令:

  1. python manage.py inspectdb
  2. python manage.py inspectdb > django_web/models.py

django_web是我的應用名稱,匯入views所在應用內的models.py 這樣views就可以直接訪問models啦

如果models中出現許多類,對應資料庫中的每一張表。每個類最下面有meta,對應的db_table即表名,此時匯入成功啦

  1. class Meta:
  2. managed = False
  3. db_table = 'qcwytable'

三 對資料進行增刪改查

在MTV模式中,views就像一個完型填空,context是填來自models的資料

匯入models,包含models所有的表

from . import models

也可以直接匯入表 

from django_web.models import Qcwytable
有一個小問題:from models import Qcwytable提示找不到models,很神奇,但寫絕對路徑就沒問題,所以建議採用第一種方式,一次匯入所有的類
獲取所有資料
 temp = models.Qcwytable.objects.all()
增加一行記錄:儲存
  1. add = models.Qcwytable(key='00003',title='Test Company')
  2. add.save();
查詢記錄
res = models.Qcwytable.objects.get(key = '00003')
刪除記錄:先查詢 後刪除
  1. res = models.Qcwytable.objects.get(key = '00003')
  2. res.delete()
修改記錄:先查詢,後修改,再儲存
  1. res = models.Qcwytable.objects.get(key = '00001')
  2. res.title='python工程師'
  3. res.company='QF Company'
  4. res.save()
參考連結: