如何在Django中使用MySQL數(shù)據(jù)庫(kù)
在Ubuntu虛擬機(jī)中配置環(huán)境和安裝所需軟件首先,登錄到Ubuntu虛擬機(jī),在終端中進(jìn)入虛擬Python環(huán)境。使用pip工具安裝pyMySQL,命令如下:```bashworkon djangote
在Ubuntu虛擬機(jī)中配置環(huán)境和安裝所需軟件
首先,登錄到Ubuntu虛擬機(jī),在終端中進(jìn)入虛擬Python環(huán)境。使用pip工具安裝pyMySQL,命令如下:
```bash
workon djangotest
pip install pyMySQL
```
創(chuàng)建Django工程和應(yīng)用
在工程內(nèi)創(chuàng)建一個(gè)名為book的應(yīng)用,具體命令如下:
```bash
django-admin startproject djmysql
cd djmysql
python startapp book
```
配置MySQL數(shù)據(jù)庫(kù)供Django工程使用
在MySQL中創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù),用于Django工程的數(shù)據(jù)存儲(chǔ)。執(zhí)行以下命令:
```bash
mysql -uroot -p
輸入密碼后執(zhí)行以下SQL語句
create database djtest default charsetutf8;
show databases;
quit;
```
這里通過設(shè)置默認(rèn)字符集為utf8來指定數(shù)據(jù)庫(kù)的編碼方式。
Django工程中配置MySQL數(shù)據(jù)庫(kù)信息
編輯Django工程的文件,在其中配置MySQL數(shù)據(jù)庫(kù)信息并注冊(cè)book應(yīng)用。示例代碼如下:
```python
DATABASES {
'default': {
'ENGINE': '',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'your_password',
'NAME': 'djtest', 第3步創(chuàng)建的數(shù)據(jù)庫(kù)
}
}
INSTALLED_APPS [
'',
'',
'',
'',
'',
'',
'',
]
```
在工程的__init__.py文件中添加代碼
為了能夠正常連接MySQL數(shù)據(jù)庫(kù),需要在工程的同名文件夾內(nèi)的__init__.py文件中添加以下代碼:
```python
from pymysql import install_as_MySQLdb
install_as_MySQLdb()
```
由于現(xiàn)在使用的是pyMySQL而不是MySQLdb,因此需要進(jìn)行此轉(zhuǎn)換。
編寫book應(yīng)用的模型類
在book應(yīng)用內(nèi)編輯文件,創(chuàng)建一個(gè)模型類,示例代碼如下所示:
```python
from django.db import models
class Employee():
name (max_length100)
```
遷移數(shù)據(jù)庫(kù)變化
生成遷移文件并將其應(yīng)用于數(shù)據(jù)庫(kù),使用以下命令:
```bash
python makemigrations
python migrate
```
查看數(shù)據(jù)庫(kù)表結(jié)果
連接到MySQL數(shù)據(jù)庫(kù),可以發(fā)現(xiàn)在djtest數(shù)據(jù)庫(kù)中新增了一個(gè)名為book_employee的表,此為Django自動(dòng)創(chuàng)建的表結(jié)構(gòu),包含name字段。
通過以上步驟,您已成功配置Django項(xiàng)目以使用MySQL數(shù)據(jù)庫(kù)作為數(shù)據(jù)存儲(chǔ)后端。