1. 打开virtualBox虚拟机,进入终端,输入命令mysql -u admin -p,然后输入用户密码,进入到mysql数据库。
  2. django mysql 创建表 django 创建数据库_django

  3. 输入命令show databases; 查看当前数据库。注意在数据库中输入指令要加上分号结尾
show databases;
  1. 创建数据库:create database 数据库名字;
create database test;
  1. 在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, #端口,自己配置的端口
    }
}
  1. exit;命令退出mysql数据库,切换到自己项目的虚拟环境中,下载PyMySQL模块。pip list可以查看下载的第三方库。
pip install pymysql;
  1. 在项目根目录下的文件夹中找到__init__.py文件,导入pymysql,输入以下代码,然后启动项目,成功表示数据库的基本连接完成。
import pymysql
# 建立数据库连接
pymysql.install_as_MySQLdb()
  1. 创建一个新的django应用testapp,配置好基本路由参数。
  2. 打开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)
  1. 进行映射。 点击Tools——>run manage.py——>makemigrations testapp(新创建的应用名)。然后右击testapp,将映射从虚拟机中下载下来:Deployment——>download from cdproject。这时候testapp下的migrations文件夹里就会生成一个0001_initial.py的文件。
  2. 进行迁移。在没有迁移之前,数据库中是不会创建数据表的。再次进入mysql数据库,use test;命令使用test这个数据库,此时查看数据库中的表是空的。点击Tools——>run manage.py——>输入migrate testapp,显示ok表示迁移成功。此时在mysql数据中输入show tables,可以查看到两个表,一个表名为testapp_test的表(就是我们创建的),还有一个就是django_migrations,存放我们的映射记录。
  3. django mysql 创建表 django 创建数据库_django_02


  4. django mysql 创建表 django 创建数据库_django mysql 创建表_03

  5. 可以自定义表名。在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"
  1. 再重新进行数据映射和迁移。点击Tools——>run manage.py——>输入makemigrations testapp,进行映射。再输入migrate testapp进行迁移,在mysql数据库中查看表名,已经变成自己定义的Test。