- 打开virtualBox虚拟机,进入终端,输入命令mysql -u admin -p,然后输入用户密码,进入到mysql数据库。
- 输入命令show databases; 查看当前数据库。注意在数据库中输入指令要加上分号结尾
show databases;
- 创建数据库:create database 数据库名字;
create database test;
- 在pycharm的项目中找到settings.py文件,在DATABASES字段中进行配置,与创建的数据库进行关联。
DATABASES = {
'default': {
# 1)配置数据库,默认的配置先注释掉
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# 2)添加mysql的搜索引擎
'ENGINE':"django.db.backends.mysql", #搜索引擎:mysql
'NAME':"test", #在mysql中创建的数据库名字
'USER':"admin", #用户名默认用的都是admin的用户
'PASSWORD':'123456', #用户密码,自己创建虚拟机时设置的
'HOST':"127.0.0.1", #ip:如果时远程连接写远程ip,这里做本地测试填127.0.0.1
'PORT':3000, #端口,自己配置的端口
}
}
- exit;命令退出mysql数据库,切换到自己项目的虚拟环境中,下载PyMySQL模块。pip list可以查看下载的第三方库。
pip install pymysql;
- 在项目根目录下的文件夹中找到__init__.py文件,导入pymysql,输入以下代码,然后启动项目,成功表示数据库的基本连接完成。
import pymysql
# 建立数据库连接
pymysql.install_as_MySQLdb()
- 创建一个新的django应用testapp,配置好基本路由参数。
- 打开testapp下的models.py文件,输入以下代码。
from django.db import models
# 1.创建数据表: class 表名()
class Test(models.Model): #继承models.Model 继承父类 实现模型类准备工作
id = models.AutoField(primary_key=True) #id字段 主键自增约束
name = models.CharField(max_length=20,null=True) #设置name最长为20字节,非空约束
age = models.IntegerField() #int类型
sex = models.CharField(max_length=10)
- 进行映射。 点击Tools——>run manage.py——>makemigrations testapp(新创建的应用名)。然后右击testapp,将映射从虚拟机中下载下来:Deployment——>download from cdproject。这时候testapp下的migrations文件夹里就会生成一个0001_initial.py的文件。
- 进行迁移。在没有迁移之前,数据库中是不会创建数据表的。再次进入mysql数据库,use test;命令使用test这个数据库,此时查看数据库中的表是空的。点击Tools——>run manage.py——>输入migrate testapp,显示ok表示迁移成功。此时在mysql数据中输入show tables,可以查看到两个表,一个表名为testapp_test的表(就是我们创建的),还有一个就是django_migrations,存放我们的映射记录。
- 可以自定义表名。在models.py文件中输入以下代码:把自定义表名部分加上去即可。
from django.db import models
# 1.创建数据表: class 表名()
class Test(models.Model): #继承models.Model 继承父类 实现模型类准备工作
id = models.AutoField(primary_key=True) #id字段 主键自增约束
name = models.CharField(max_length=20,null=True) #设置name最长为20字节,非空约束
age = models.IntegerField() #int类型
sex = models.CharField(max_length=10)
# 自定义表名
class Meta: #Meta类名不要改
db_table = "Test"
- 再重新进行数据映射和迁移。点击Tools——>run manage.py——>输入makemigrations testapp,进行映射。再输入migrate testapp进行迁移,在mysql数据库中查看表名,已经变成自己定义的Test。