数据库连接
- 首先,确保我们已经生成了一个基本的Django项目文件,目录结构如下:
具体搭建流程参考链接:https://blog.csdn.net/David_house/article/details/131188889?spm=1001.2014.3001.5502 - 找到项目下的settings文件,打开,修改相关内容
- 添加应用名称(我这里的应用名称为app,我在最后一行加入了app)
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app'
]
- 修改数据库连接信息
我这里用的是mysql数据库, 'NAME’后面是你要用的数据库名称
DATABASES = {'default':{'ENGINE': 'django.db.backends.mysql','NAME': 'dfds','HOST':'127.0.0.1','PORT':3306,'USER':'root','PASSWORD':'123456'}
}
- 打开app目录下的init文件,注意不是migrations里面的init文件,添加如下内容:
import pymysql
pymysql.install_as_MySQLdb()
表的创建
- 打开models.py文件,添加你要创建的表的信息,比如,我这里要创建三张表,具体内容如下:
# Create your models here.
class Users(models.Model):#前面的变量名会默认生成为表中的列名,如果想单独设置可以通过属性db_column=''#当使用CharField时,一定要通过max_length来设置一下最大长度id=models.AutoField('用户id',primary_key=True) #primary_key为True时表示该列是主键email=models.CharField('用户邮箱',max_length=50,null=False) #null=False表示不为空password = models.CharField('用户登录密码',max_length=8,null=False)class Meta:db_table='user' #设置对应的表名class Test(models.Model):sample_id = models.AutoField('数据唯一标识符', primary_key=True)classification = models.IntegerField('分类类别', null=False)features = models.CharField('特征',max_length=1000)#ForeignKey来指定外键,第一个参数是关联的表,第二个参数是表连接的方式u_id = models.ForeignKey(Users, on_delete=models.CASCADE)class Meta:db_table = 'test'class getModel(models.Model):m_id = models.AutoField('模型的唯一标识符', primary_key=True)model = models.CharField('模型文件保存路径',max_length=1000, null=False)sample_id = models.ForeignKey(Test,on_delete=models.CASCADE)class Meta:db_table = 'model'
- 打开终端,进入到 manage.py文件所在的目录下
执行命令python manage.py makemigrations
,生成对应模型,执行结果如下:
3. 执行命令 python manage.py migrate
,生成对应的数据表,执行结果如下:
(这里截图有点问题,但是出现ok就是没问题的意思)
最后,我们去数据库里查看,发现表格自动生成了:
最后三个表是我们自己设计的,其他的是Django项目运行的时候自己需要的数据表