Django將默認(rèn)的SQLite更換為MySQL的實(shí)現(xiàn)
1、注釋默認(rèn)的SQLite3配置:
blogproject/settings.py
'''
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
'''
2、添加MySQL配置(配置你自己的mysql庫(kù)前提是你已經(jīng)有能夠供自己使用的MySQL庫(kù)了)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #固定配置
'HOST': '127.0.0.1',#mysql地址
'PORT': '3306',#端口號(hào)
'NAME': 'guest',#庫(kù)名(組名)
'USER': 'root',#用戶
'PASSWORD': '123456',#密碼
'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", },
}
}
遷移數(shù)據(jù)庫(kù)
為了讓 Django 完成翻譯,使用我們?cè)趍odele.py已經(jīng)創(chuàng)建好的這些數(shù)據(jù)庫(kù)表,我們請(qǐng)出我的工程管理助手 manage.py。激活虛擬環(huán)境,切換到 manage.py 文件所在的目錄下,分別運(yùn)行 python manage.py makemigrations和 python manage.py migrate命令:
PS D:\xuexi\python\\django2\blogproject> python manage.py makemigrations Migrations for 'blog': blog\migrations\0001_initial.py: - Create model Category - Create model Post - Create model Tag - Add field tags to post PS D:\xuexi\python\web接口開(kāi)發(fā)\django2\blogproject> python manage.py migrate Operations to perform: Apply all migrations: admin, auth, blog, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying blog.0001_initial... OK Applying sessions.0001_initial... OK
僅供參考你的數(shù)量可能沒(méi)有這么多
當(dāng)我們執(zhí)行了 python manage.py makemigrations后,Django 在 blog 應(yīng)用的 migrations\ 目錄下生成了一個(gè) 0001_initial.py文件,這個(gè)文件是 Django 用來(lái)記錄我們對(duì)模型做了哪些修改的文件。目前來(lái)說(shuō),我們?cè)?models.py 文件里創(chuàng)建了 3 個(gè)模型類(lèi),Django 把這些變化記錄在了 0001_initial.py里。
不過(guò)此時(shí)還只是告訴了 Django 我們做了哪些改變,為了讓 Django 真正地為我們創(chuàng)建數(shù)據(jù)庫(kù)表,接下來(lái)又執(zhí)行了 python manage.py migrate命令。Django 通過(guò)檢測(cè)應(yīng)用中 migrations\ 目錄下的文件,得知我們對(duì)數(shù)據(jù)庫(kù)做了哪些操作,然后它把這些操作翻譯成數(shù)據(jù)庫(kù)操作語(yǔ)言,從而把這些操作作用于真正的數(shù)據(jù)庫(kù)。
如果你使用的是mysql會(huì)生成0001_auto_20180507_2145.py
如果你需要在mysql和SQLite3之間切換你需要重新執(zhí)行python manage.py makemigrations和 python manage.py migrate命令,而且你原來(lái)庫(kù)中的數(shù)據(jù)不會(huì)轉(zhuǎn)移(執(zhí)行完上面兩個(gè)命令只會(huì)在新的數(shù)據(jù)庫(kù)中創(chuàng)建modele.py中的表)。
以上這篇Django將默認(rèn)的SQLite更換為MySQL的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Django把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù)的過(guò)程
- Django數(shù)據(jù)庫(kù)(SQlite)基本入門(mén)使用教程
- django 將自帶的數(shù)據(jù)庫(kù)sqlite3改成mysql實(shí)例
- Django 創(chuàng)建后臺(tái),配置sqlite3教程
- DJango的創(chuàng)建和使用詳解(默認(rèn)數(shù)據(jù)庫(kù)sqlite3)
- django 連接數(shù)據(jù)庫(kù) sqlite的例子
- django使用sqlite3統(tǒng)計(jì)前臺(tái)站點(diǎn)訪問(wèn)數(shù)量示例
相關(guān)文章
python模塊和包的應(yīng)用BASE_PATH使用解析
這篇文章主要介紹了python模塊和包的應(yīng)用BASE_PATH使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python制作定時(shí)發(fā)送信息腳本的實(shí)現(xiàn)思路
這篇文章主要介紹了python實(shí)現(xiàn)企業(yè)微信定時(shí)發(fā)送文本消息的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Python中Collections模塊的Counter容器類(lèi)使用教程
Counter是Python標(biāo)準(zhǔn)庫(kù)提供的一個(gè)非常有用的容器,可以用來(lái)對(duì)序列中出現(xiàn)的各個(gè)元素進(jìn)行計(jì)數(shù),下面就來(lái)一起看一下Python中Collections模塊的Counter容器類(lèi)使用教程2016-05-05
Python 函數(shù)編編程的三大法寶map+filter+reduce分享
這篇文章主要介紹了Python 函數(shù)編編程的三大法寶map,filter,reduce的分享,python利用 map 在一個(gè)可迭代對(duì)象的各項(xiàng)上調(diào)用函數(shù)的工具;利用 filter 來(lái)過(guò)濾項(xiàng);利用 reduce 把函數(shù)作用在成對(duì)的項(xiàng)上來(lái)運(yùn)行結(jié)果的工具,下面我們就來(lái)對(duì)這三者進(jìn)行詳細(xì)的介紹,需要的朋友可以參考下2022-03-03
利用Python yagmail三行代碼實(shí)現(xiàn)發(fā)送郵件
這篇文章主要給大家介紹了關(guān)于利用Python yagmail三行代碼實(shí)現(xiàn)發(fā)送郵件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
Python利用Matplotlib繪圖無(wú)法顯示中文字體的解決方案
在很長(zhǎng)一段時(shí)間里用Python繪圖,matplotlib都不能很好的顯示中文,下面這篇文章主要給大家介紹了關(guān)于Python利用Matplotlib繪圖無(wú)法顯示中文字體的解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
利用 PyCharm 實(shí)現(xiàn)本地代碼和遠(yuǎn)端的實(shí)時(shí)同步功能
這篇文章主要介紹了利用 PyCharm 實(shí)現(xiàn)本地代碼和遠(yuǎn)端的實(shí)時(shí)同步功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Python基于requests庫(kù)爬取網(wǎng)站信息
這篇文章主要介紹了python基于requests庫(kù)爬取網(wǎng)站信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python中l(wèi)ogging日志模塊代碼調(diào)試過(guò)程詳解
這篇文章主要介紹了Python中l(wèi)ogging日志模塊代碼調(diào)試,今天來(lái)看看如何在代碼中定義日志,并探討日志的權(quán)限,需要的朋友可以參考下2023-04-04

