初学Django:第十天,模型类和mysql数据库

初学Django:第十天,模型类和mysql数据库,第1张

初学Django:第十天,模型类和mysql数据库

  利用模型类自动创建mysql数据库表。

一、先配置settings.py下的DATAbaseS数据库
# 配置数据库mysql
DATAbaseS = {
    'default': {
        # 要全部大写
        'ENGINE': 'django.db.backends.mysql',  # 指定使用的数据库
        'HOST': '127.0.0.1', # 本地的ip
        'PORT':'3306',  # 端口号
        'USER':'root', # mysql数据库用户名
        'PASSWORD':'root',# mysql数据库密码
        'NAME': 'dj11',    # 指定数据库名
    }
}

 二、在models.py下创建图书类BookInfo(models.Model)
from django.db import models    # 这个就是模型的模块
# 模型类  和数据库相关的
# Create your models here.
""""
class  ORM 对象-关系 映射   
1.模型类   class    对应着我们的数据库中的(mysql)表名   
2. 属性     对应着我们的数据库中的字段 类型   
3.对象     对应着数据中的这个表名字
"""
# 图书类
class BookInfo(models.Model):
    # 定义属性
    # 属性名  = 属性类型(选项)
    # id  这个字段是不需要自己去定义的
    # 书名
    name = models.CharField(max_length=10)
    # 发布日期   verbose_name  属性名   null   是否允许为空的
    pub_date = models.DateField(verbose_name='发布日期',null=True)
    # 阅读量  default  一个默认值
    readcount = models.IntegerField(default=0,verbose_name='阅读量')
    # 评论量
    commentcount = models.IntegerField(default=0,verbose_name='评论量')
    # 逻辑删除
    is_delete = models.BooleanField(default=False,verbose_name='逻辑删除')

    def __str__(self):
        return self.name
    #  meta  这个是我们继承自模型   要注意不要写错误类名
    # 这这个类可以给我们提供指定数据库中的表名,admin   中显示这个类名  已复数的形式显示
    class meta:
        db_table = 'bookinfo' # 这个是指定表名的
        verbose_name = '图书'   # 在admin中显示的名称
        verbose_name_plural = verbose_name  # 显示的复数名称
2.1.创建人物类PeopleInfo(models.Model)和上述图书类BookInfo(models.Model)关联
# 人物表
# 把人物和图书关联起来
class PeopleInfo(models.Model):
    #
    CHOICES_CHOICES = (
        (0, 'male'),
        (1, 'female')
    )
    name = models.CharField(verbose_name='名称',max_length=20)
    # 性别
    gender = models.SmallIntegerField(choices=CHOICES_CHOICES,default=0,verbose_name='性别')
    # 描述信息
    description = models.CharField(max_length=200,null=True,verbose_name='描述信息')
    # on_delete 关联中的删除数据表的时候不至于删除掉这个表中的数据
    # models.CASCADE
    book = models.ForeignKey('BookInfo',on_delete=models.CASCADE,verbose_name='图书')
    # 逻辑删除
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')
    def __str__(self):
        return self.name
    class meta:
        db_table = 'peopleinfo' #表名
        verbose_name = '人物信息'
        verbose_name_plural = verbose_name
三、配置项目下__init__.py
import  pymysql
# pymysql.version_info = (1,4,13,"final",0)  # 设置版本
pymysql.install_as_MySQLdb()   # 使用mysql

 四、导入项目所需的mysql库

命令行下:pip install pymysql

 五、运行migrates生成迁移数据库,并创建表 5.1 先命令行下创建数据库:create database dj11;#dj11为数据库名。

 5.2  在pycharm命令行下运行:python manage.py makemigrations生成迁移文件再次在pycharm命令行下运行:python manage.py migrate生成数据表


 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5659157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存