溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django如何配置mysql數(shù)據(jù)庫

發(fā)布時間:2020-10-03 13:36:04 來源:腳本之家 閱讀:237 作者:diligentkong 欄目:開發(fā)技術

Django項目默認使用sqlite 數(shù)據(jù)庫,但是我想用mysql數(shù)據(jù)庫,應該如何配置呢。

Django連接mysql數(shù)據(jù)庫的操作,是通過根模塊的配置實現(xiàn)的,在項目根模塊的配置文件settings.py中,我們可以查詢到如下DATABASES的配置信息:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  }
}

解釋一下上面代碼的意思:

ENGINE:用于特定的數(shù)據(jù)庫引擎的配置,不同的數(shù)據(jù)庫字段不同,常見的有:

django.db.backends.postgresql # PostgreSQL
django.db.backends.mysql    # mysql 
django.db.backends.sqlite3   # sqlite 
django.db.backends.oracle   # oracle

NAME: 是指要連接的數(shù)據(jù)庫名字

django的文檔中有說明,想使用mysql的話需要安裝Python的db API DRIVER 即數(shù)據(jù)庫接口驅動,常用的數(shù)據(jù)庫驅動接口有三種,mysqldb、pymysql、mysqlclient 。但是但是MYSQLdb不支持python3 ,官方推薦使用mysqlclient。因此本文也是采用mysqlclient。好了廢號不多說,開始今天的Django配置mysql之旅。

第一步:下載mysqlclient

pip install mysqlclient

Django如何配置mysql數(shù)據(jù)庫

第二步:創(chuàng)建一個數(shù)據(jù)庫,比如我創(chuàng)建了一個blog數(shù)據(jù)庫,你可以用命令創(chuàng)建,也可以用可視化工具(Navicat Premium)進行創(chuàng)建,命令創(chuàng)建數(shù)據(jù)庫代碼:

CREATE DATABASE blog(database_name) CHARACTER SET UTF8; 
   #指定數(shù)據(jù)庫的編碼utf8

第三步:在settings.py中配置mysql連接參數(shù),如下:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'blog',
  'USER':'root',
  'PASSWORD':'kong1234,',
  'HOST':'127.0.0.1',
  'PORT':'3306',
  }
}
  • USER: 數(shù)據(jù)庫登錄的用戶名,mysql一般都是root
  • PASSWORD:登錄數(shù)據(jù)庫的密碼,必須是USER用戶所對應的密碼
  • HOST: 由于一般的數(shù)據(jù)庫都是C/S結構的,所以得指定數(shù)據(jù)庫服務器的位置,我們一般數(shù)據(jù)庫服務器和客戶端都是在一臺主機上面,所以一般默認都填127.0.0.1
  • PORT:數(shù)據(jù)庫服務器端口,mysql默認為3306
  • HOST和PORT都可以不填,使用默認的配置,但是如果你有更改默認配置的話,就需要填入更改后的

其實這樣基本上完成了,為了更好地說明,舉個實例進行演示一下數(shù)據(jù)的操作。

第四步:在你創(chuàng)建的應用中models.py創(chuàng)建model類。

比如我在我的blog應用下的,models.py中創(chuàng)建一個類,代碼如下:

from __future__ import unicode_literals
from django.db import models


class Article(models.Model):
  title = models.CharField(max_length=32, default='Title')
  content = models.TextField(null=True)

第五步:將字段映射成數(shù)據(jù)表,執(zhí)行如下命令

python manage.py makemigrations (應用名,選寫)
python manage.py migrate (應用名,選寫)

第六步:執(zhí)行python manage.py sqlmigrate應用名 文件id

查看sql語句

python manage.py sqlmigrate blog 0001 

具體django中數(shù)據(jù)庫的操作可以參考下一篇博文。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI