Django如何配置mysql數(shù)據(jù)庫(kù)
Django項(xiàng)目默認(rèn)使用sqlite 數(shù)據(jù)庫(kù),但是我想用mysql數(shù)據(jù)庫(kù),應(yīng)該如何配置呢。
Django連接mysql數(shù)據(jù)庫(kù)的操作,是通過(guò)根模塊的配置實(shí)現(xiàn)的,在項(xiàng)目根模塊的配置文件settings.py中,我們可以查詢到如下DATABASES的配置信息:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
解釋一下上面代碼的意思:
ENGINE:用于特定的數(shù)據(jù)庫(kù)引擎的配置,不同的數(shù)據(jù)庫(kù)字段不同,常見(jiàn)的有:
django.db.backends.postgresql # PostgreSQL django.db.backends.mysql # mysql django.db.backends.sqlite3 # sqlite django.db.backends.oracle # oracle
NAME: 是指要連接的數(shù)據(jù)庫(kù)名字
django的文檔中有說(shuō)明,想使用mysql的話需要安裝Python的db API DRIVER 即數(shù)據(jù)庫(kù)接口驅(qū)動(dòng),常用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)接口有三種,mysqldb、pymysql、mysqlclient 。但是但是MYSQLdb不支持python3 ,官方推薦使用mysqlclient。因此本文也是采用mysqlclient。好了廢號(hào)不多說(shuō),開(kāi)始今天的Django配置mysql之旅。
第一步:下載mysqlclient
pip install mysqlclient

第二步:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),比如我創(chuàng)建了一個(gè)blog數(shù)據(jù)庫(kù),你可以用命令創(chuàng)建,也可以用可視化工具(Navicat Premium)進(jìn)行創(chuàng)建,命令創(chuàng)建數(shù)據(jù)庫(kù)代碼:
CREATE DATABASE blog(database_name) CHARACTER SET UTF8; #指定數(shù)據(jù)庫(kù)的編碼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ù)庫(kù)登錄的用戶名,mysql一般都是root
- PASSWORD:登錄數(shù)據(jù)庫(kù)的密碼,必須是USER用戶所對(duì)應(yīng)的密碼
- HOST: 由于一般的數(shù)據(jù)庫(kù)都是C/S結(jié)構(gòu)的,所以得指定數(shù)據(jù)庫(kù)服務(wù)器的位置,我們一般數(shù)據(jù)庫(kù)服務(wù)器和客戶端都是在一臺(tái)主機(jī)上面,所以一般默認(rèn)都填127.0.0.1
- PORT:數(shù)據(jù)庫(kù)服務(wù)器端口,mysql默認(rèn)為3306
- HOST和PORT都可以不填,使用默認(rèn)的配置,但是如果你有更改默認(rèn)配置的話,就需要填入更改后的
其實(shí)這樣基本上完成了,為了更好地說(shuō)明,舉個(gè)實(shí)例進(jìn)行演示一下數(shù)據(jù)的操作。
第四步:在你創(chuàng)建的應(yīng)用中models.py創(chuàng)建model類。
比如我在我的blog應(yīng)用下的,models.py中創(chuàng)建一個(gè)類,代碼如下:
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 (應(yīng)用名,選寫) python manage.py migrate (應(yīng)用名,選寫)
第六步:執(zhí)行python manage.py sqlmigrate應(yīng)用名 文件id
查看sql語(yǔ)句
python manage.py sqlmigrate blog 0001
具體django中數(shù)據(jù)庫(kù)的操作可以參考下一篇博文。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
實(shí)現(xiàn)python版本的按任意鍵繼續(xù)/退出
本文給大家簡(jiǎn)單介紹了在windows以及l(fā)inux下實(shí)現(xiàn)python版本的按任意鍵繼續(xù)/退出功能,非常的簡(jiǎn)單實(shí)用,linux下稍微復(fù)雜些,有需要的小伙伴可以參考下2016-09-09
解決python 自動(dòng)安裝缺少模塊的問(wèn)題
今天小編就為大家分享一篇解決python 自動(dòng)安裝缺少模塊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python中sklearn實(shí)現(xiàn)交叉驗(yàn)證示例分析
這篇文章主要介紹了Python中sklearn實(shí)現(xiàn)交叉驗(yàn)證,本文python的版本為3.8,各個(gè)版本之間函數(shù)名字略有不同,但是原理都是一樣的,集成開(kāi)發(fā)環(huán)境使用的是Anaconda的Spyder,需要的朋友可以參考下2023-08-08
python中的單下劃線與雙下劃線以及絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入
這篇文章主要介紹了python中的單下劃線與雙下劃線以及絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Python下使用Trackbar實(shí)現(xiàn)繪圖板
這篇文章主要為大家詳細(xì)介紹了Python下使用Trackbar實(shí)現(xiàn)繪圖板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
深入理解?Python?中的?pip?虛擬環(huán)境(最佳實(shí)踐)
本文深入講解了Python中pip虛擬環(huán)境的概念及其重要性,并詳細(xì)介紹了如何創(chuàng)建、激活和管理虛擬環(huán)境,以及如何使用requirements.txt文件記錄和管理項(xiàng)目依賴,文章指出,使用虛擬環(huán)境可以有效避免依賴沖突,為每個(gè)項(xiàng)目提供一個(gè)干凈的開(kāi)發(fā)環(huán)境,使得項(xiàng)目更易于維護(hù)和部署2024-10-10
Django結(jié)合使用Scrapy爬取數(shù)據(jù)入庫(kù)的方法示例
這篇文章主要介紹了Django結(jié)合使用Scrapy爬取數(shù)據(jù)入庫(kù)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例
這篇文章主要介紹了python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

