数据库连接
- 首先,确保我们已经生成了一个基本的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项目运行的时候自己需要的数据表