西遊之路——python全棧——django中models配置 python---django使用資料庫(orm)
阿新 • • 發佈:2018-11-14
目錄
Django支援多種資料庫,sqlite,mysql,oracle等,其預設資料庫是sqlite
在settings檔案中可以發現:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
其預設資料庫是sqlite3
要想使用其他資料庫,需要修改相應的引擎和配置
(1)sqlite:
'ENGINE': 'django.db.backends.sqlite3', #設定引擎 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #設定資料庫存放路徑
(2)mysql
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #資料庫引擎設定 'NAME': 'test', #資料庫名稱 'USER': 'root', #資料庫使用者名稱 'PASSWORD':'root', #資料庫密碼 'HOST':'', #主機地址,預設localhost 'PORT':'3306' #資料庫埠 } }
然後在APP目錄下models檔案中新增:
from django.db import models # Create your models here. class UserInfo(models.Model): username = models.CharField(max_length=64) age = models.IntegerField()
使用命令生成資料表(python---django使用資料庫(orm)):
python manage.py makemigrations python manage.py migrate
會發現報錯:
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
原因是因為:
Django預設你匯入的是MySQLdb,但是MySQLdb 對於py3版本有很大問題,所以我們需要的驅動為pymysql,所以在專案名資料夾的__init__.py中引入pymysql(也可以直接在settings下的全域性檔案__init__.py中引入)
import pymysql pymysql.install_as_MySQLdb()
再進行啟動,可以成功建立。