1.运行manage.py文件,进入报错链接,修改为'DIRS':[os.path.join(ROOT_URLCONF, 'templates')]
重新运行,
重新运行,
Python manage.py startapp book
将上一步的文件直接复制到主应用文件中(book)
修改数据库配置 sqlite3属于微型数据库,
下载pymysql库
pip install pymysql
数据库必须先创建好(create database book chartset=utf8)
接下来创建模板model
同样给出示例
from django.db import models
# Create your models here.
"""
定义模型类需要在models.py文件当中
定义模型类的时候需要注意啥:必须要继承models.Model
图书和人物案例来进行演示
ORM
表 对应 模型类
字段 -- 属性
必须要继承models.Model
模型类会自动为我们添加生成一个主键 id
属性名 = 属性类型(选项)
属性名:不用是python 关键字包括也不要起mysql关键字
不要使用连续的下划线__
"""
class BookInfo(models.Model):
# 属性名=属性类型(选项)
name = models.CharField(max_length=10, unique=True, verbose_name='名字')
# 发布日期
pub_date = models.DateField(null=True)
# 阅读量
readcount = models.IntegerField(default=0)
# 评论量
commentcount = models.IntegerField(default=0)
# 是否逻辑删除 物理删除
is_delete = models.BooleanField(default=False)
class Meta:
# 改表名
db_table = 'bookinfo'
# 修改后台admin的显示信息的配置
verbose_name = '书籍'
def __str__(self):
return self.name
class PeopleInfo(models.Model):
# 有序字典 元组嵌套 一组不能发生改变的数据
GENDER_CHOICES = (
(0, 'male'),
(1, 'female')
)
name = models.CharField(max_length=10, verbose_name='名称')
gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0, verbose_name='性别')
description = 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 = 'peopleinfo'
verbose_name = '人物信息'
def __str__(self):
return self.name
迁移和生成文件
也可以在pycharm终端操作
需加上 python manage.py makemigrations
接下来继续输入python manage.py migrate
因为没设置迁移文件,所以默认迁移所有文件,book.0001即为所需
创建数据,给出以下示例代码
insert into bookinfo(name, pub_date, readcount,commentcount, is_delete) values
('射雕英雄传', '1980-5-1', 12, 34, 0),
('天龙八部', '1986-7-24', 36, 40, 0),
('笑傲江湖', '1995-12-24', 20, 80, 0),
('雪山飞狐', '1987-11-11', 58, 24, 0);
insert into peopleinfo(name, gender, book_id, description, is_delete) values
('郭靖', 1, 1, '降龙十八掌', 0),
('黄蓉', 0, 1, '打狗棍法', 0),
('黄药师', 1, 1, '弹指神通', 0),
('欧阳锋', 1, 1, '蛤蟆功', 0),
('梅超风', 0, 1, '九阴白骨爪', 0),
('乔峰', 1, 2, '降龙十八掌', 0),
('段誉', 1, 2, '六脉神剑', 0),
('虚竹', 1, 2, '天山六阳掌', 0),
('王语嫣', 0, 2, '神仙姐姐', 0),
('令狐冲', 1, 3, '独孤九剑', 0),
('任盈盈', 0, 3, '弹琴', 0),
('岳不群', 1, 3, '华山剑法', 0),
('东方不败', 0, 3, '葵花宝典', 0),
('胡斐', 1, 4, '胡家刀法', 0),
('苗若兰', 0, 4, '黄衣', 0),
('程灵素', 0, 4, '医术', 0),
('袁紫衣', 0, 4, '六合拳', 0);
下节继续