IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django模型 -> 正文阅读

[Python知识库]Django模型

? ? ? ? Django模型的应用是Django中很重要的一部分,在这里分享自己学习的一些成果。

? ? ? ? 1. ORM

? ? ? ? 我们知道Django框架属于MVT框架的一种,而MVT框架中包括了一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,只需通过简单的配置就可以轻松更换数据库。

????????ORM是“对象-关系-映射”的简称,主要任务是:

????????(1)根据对象的类型生成数据表结构,将对象、列表的操作,转换为SQL语句,将SQL查询到的结果转换为对象、列表;

????????(2)这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动;????????

????????(3)Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表。????????

? ? ? ? ?2.?定义与创建模型

? ? ? ? 在了解ORM之后,接下来,我们创建定义和创建模型。当我们使用命令:

python manage.py startapp 应用名称

????????创建一个应用的时候,在项目目录下会出现一个与应用名称一样的文件夹:

? ? ? ? 注意: 生成的应用要添加到主目录settings.py的INSTALLED_APPS中

????????2.1 设计数据表

? ? ? ? 在应用目录下的models.py写入代码:

# 图书类
class BookInfo(models.Model):
    #图书名
    bname=models.CharField(max_length=20)
    #发布日期
    bpub_date=models.DateField()
    #页面数
    bpage=models.IntegerField(default=0)
    #软删除标记
    is_delete=models.BooleanField(default=False)


# 作者类
class AuthorInfo(models.Model):
    #作者名
    aname=models.CharField(max_length=20)
    #性别
    agender=models.BooleanField(default=True)
    #简介
    acontent=models.CharField(max_length=100)
    #软删除标记
    is_delete=models.BooleanField(default=False)
    #外键名
    abook=models.ForeignKey("BookInfo")

? ? ? ? ?里面的两个类将会在数据库中生成两张表,里面的属性则会生成相对应的字段。这里我使用的是mysql数据库,所以,还需要配置数据库。

? ? ? ? 配置数据库的方法:

? ? ? ? 1. 修改setting.py文件中DATABASES的信息

? ? ? ? ?2.?安装pymysql模块后,打开主目录下的__init__.py文件写上以下代码:

import pymysql

pymysql.install_as_MySQLdb()

? ? ? ? 完成以上两个步骤之后,才可以在Django中使用操作mysql数据库。

? ? ? ? 2.2 生成数据表

? ? ? ? 在设计完数据表之后,就要生成这些数据表了哦。要生成数据表需要两个步骤:

? ? ? ? 1、需要先执行如下命令用于生成迁移文件:

? ? ? ? ?2、?执行如下迁移命令用于执行SQL语句生成数据表:

? ? ? ? ?执行以上命令后,数据库就会生成数据表

? ? ? ? ?3. 内置类--Meta类

? ? ? ? 在这里扩展一下Meta类的一些相关内容。

? ? ? ? 3.1?db_table选项

????????在模型类中定义类Meta,可用于设置元信息,如使用db_table自定义表的名字。我们都知道,在Django中,数据表的默认名称为:<app_name>_<model_name>

class BookInfo(models.Model):
    ...
    #定义元选项
    class Meta:
        db_table='bookinfo' #指定BookInfo生成的数据表名为bookinfo

? ? ? ? 3.2 verbose_name选项与verbose_name_plural选项

? ? ? ? 这两个选项都可以用来设置数据表在后台显示的内容。

class BookInfo(models.Model):
    ...
    #定义元选项
    class Meta:
        db_table='bookinfo' #指定BookInfo生成的数据表名为bookinfo
        # 该选项在后台显示时,会在设置的名称后加多一个's'
        # verbose_name = '图书'
        # 该选项在后台显示时,不会在设置的名称后加多一个's'
        verbose_name_plural = '图书'

? ? ? ? 3.3?abstract选项

????????Model中可以使用meta将某一个类设置成抽象类,抽象类不会在数据库中创建表,可以将表中重复的字段放入到抽象类中,让每一个应用继承这个抽象类.

????????在Meta选项中还有很多选项可以选择,可以到Django文档中学习更多的选项

Django 文档 | Django 文档 | Djangohttps://docs.djangoproject.com/zh-hans/2.0/

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:15:03  更:2021-12-15 18:17:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:22:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码