3. 在Django项目中集成MySql
安装mysqlclient
1
pipenv install mysqlclient
在使用
pipenv install mysqlclient
时报错, 本来以为是mysqlclient或者pipenv的问题, 反复尝试无果又随便找了几个其他的包尝试安装, 包括
requests
,pydoc
等发现依然会出现同样的问题,但是像
django
等一些包就安装很顺利最后找到一些解决方案, 需要安装一个名为
pkg-connfig
的包,
1 sudo apt-get install pkg-config但是Mac 并不支持
apt-get
于是只能换一种思路, 使用
brew
来安装pkg-config
经尝试
1brew install pkg-config
运行完成之后
mysqlclient
便可以通过pipenv正常安装了PS: brew安装:
1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
修改settings.py配置文件
vscode快捷键: cmd+T
/ cmd+shift+O
修改DATABASES
设置
1
2
3
4
5
6
7
8
9
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'storefront',
'HOST': 'localhost',
"USER": 'root',
"PASSWORD": '000000'
}
}
运行自定义SQL
生成一个空的migration文件:
# sotre是子app的名字 > python manage.py makemigrations store --empty Migrations for 'store': store/migrations/0002_auto_20231107_0610.py
可以修改该文件的名字, 如
0002_insert_test_data.py
在文件中编辑SQL语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class Migration(migrations.Migration): dependencies = [ ('store', '0001_initial'), ] operations = [ # 第一条SQL用于部署 # 第二条SQL用于还原 # 具体执行那一条根据python manage.py migrate来进行操作 migrations.RunSQL(""" INSERT INTO store_collection (title) VALUES ('collection1') """, """ DELETE FROM store_collection WHERE title = 'collection1' """) ]
部署SQL
1
python manage.py migrate
还原
1
python manage.py migrate store 0001
添加测试数据
测试数据在线工具: https://mockaroo.com
在线编辑字段, 选择类型, 选择sql, 下载SQL文件
在datagrip中执行即可
或者使用Faker
,DataFactory
等python库进行数据生成
本文由作者按照 CC BY 4.0 进行授权