栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初学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生成数据表


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号