美文网首页
Django-模型

Django-模型

作者: 遇明不散 | 来源:发表于2019-05-16 21:56 被阅读0次

    模型

    什么是模型

    根据数据表结构而创建出来的class

    ORM

    对象关系映射(Object Relational Mapping)

    三大特征
    • 表到类的映射
    • 数据类型的映射
    • 关系映射

    创建和配置数据库

    创建数据库-webdb
    create database webdb default charset utf8 collate utf8_general_ci;
    
    Django的数据库配置

    settings.py 中配置数据库的信息

    # 默认
    DATABASES = {
        'default':{
            'ENGINE':'django.db.backends.sqlite3',
            'NAME':os.path.join(BASE_DIR,db.sqlite3),
        }
    }
    
    • ENGINE:指定要连接的数据库的驱动程序
      连接mysql的话可以取值为django.db.backends.mysql
    • NAME:指定要连接到的数据库的名称
      连接mysql的话可以取值为:mysql数据库名
    • USER:指定登录到数据库管理系统的用户名
    • PASSWORD:指定登录到数据库管理系统的密码
    • HOST:指定要连接到的主机地址
      如果是本机的话:127.0.0.1localhost
    • PORT:指定端口号,mysql的默认为 3306
    数据库的同步操作
    • ./manage.py makemigrations 将每个应用下的models.py文件生成一个数据库的中间文件,并将中间文件保存到migrations的目录中
    • ./manage.py migrate 将每个应用下的migrations目录中的中间文件同步到数据库中

    Models的语法规范

    class ClassName(models.Model):
          属性=models.FIELDTYPE(FIELD_OPTIONS)
    # FIELDTYPE: 字段类型
    # FIELD_OPTIONS: 字段选项(字段说明)
    
    字段类型
    • BooleanField()
      编程语言中使用 TrueFalse 来表示该列的值
      数据库中使用 10 来表示具体的值
      数据类型为:tinyint
    • CharField()
      编程语言中使用字符串来表示该列的值
      数据库中也是字符串
      数据类型为:varchar
      注意:必须要指定max_length参数值
    • DateField()
      编程语言中使用字符串或Date类型的数据表示该值
      数据库中使用的是时间字符串
      数据类型为:date
    • DateTimeField()
      数据类型为:datetime
    • DecimalField()
      编程语言中使用数字(小数)来表示该列的值
      数据库使用小数表示
      数据类型:decimal
      eg:money=models.DecimalField(max_digits=7,decimal_places=2)
    • FloatField()
      编程语言中使用数字(小数)来表示该列的值
      数据库使用小数
      数据类型:float
    • IntegerField()
      数据类型:int
    • EmailField()
      编程语言中使用字符串来表示一段Email地址
      数据库中使用 字符串表示
      数据类型:varchar
    • URLField()
      编程语言中使用字符串来表示一段网址
      数据库中使用 字符串表示
      数据类型:varchar
    • ImageFiled()
      目的:存储图片路径
      数据类型:varchar
      eg:image=models.ImageField(upload_to='images/')
    • 更多请查看
    字段选项
    • default 为当前字段指定默认值
    • null 指定当前字段是否允许为空,默认为False,不能为空
    • db_index 指定是否为当前字段指定索引
    • db_column 指定当前属性映射到表中的类名,如果不指定则采用属性名称作为类名
    • 更多请查看
    相关指令
    版本切换
    ./manage.py migrate 应用名称 版本号
    
    通过数据库自动导出models类
    ./manage.py inspectdb > 文件名.py
    

    相关文章

      网友评论

          本文标题:Django-模型

          本文链接:https://www.haomeiwen.com/subject/lqtvaqtx.html