数据库的配置
- 注意 如果配置里用的是ip地址访问
- 需要修改mysql库里的user表里的 User字段为root的那条数据的Host字段为%,如下图
- 查询账户Host的信息
select Host,User from mysql.user; - 修改账户信息
update mysql.user set host = ‘%’ where user = ‘root’;
安装mysqlclient
pip install mysqlclient
如果有报错可以参考这个我安装过程中出现问题的记录
ORM
在工程里创建新的应用booktest
在booktest的model里创建模型类
from django.db import models
# Create your models here.
class BookInfo(models.Model):
'''
图书 一对多中的 一
'''
title = models.CharField(max_length=20, verbose_name='书名')
pub_date = models.DateField(verbose_name='发布日期')
read = models.IntegerField(default=0, verbose_name='阅读量')
comment = models.IntegerField(default=0, verbose_name='评论量')
is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')
image = models.ImageField(upload_to='bookimage', verbose_name='封面图片', null=True)
class Meta:
db_table = 'bookinfo'
verbose_name = '书'
def __str__(self):
return self.title
class HeroInfo(models.Model):
'''
英雄 一对多中的 多
'''
GENDER_CHOISE = (
(0, 'male'),
(1, 'female')
)
name = models.CharField(max_length=20, verbose_name='名字')
gender = models.SmallIntegerField(choices=GENDER_CHOISE, verbose_name='性别')
desc = models.CharField(max_length=200, null=True, verbose_name='介绍')
book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name='图书')
is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')
class Meta:
db_table = 'heroinfo'
verbose_name = '英雄'
def __str__(self):
return self.name
生成迁移文件
python manage.py makemigrations
执行迁移命令
python manage.py migrate