[Python]Django模型(Model)(一)

简介: [Python]Django模型(Model)

d2d119278e0042b7b9d1f56135f26544.jpg

前言

系列文章目录

[Python]目录

视频及资料和课件

链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234

提取码:1234


1. ORM框架

MVT设计模式中的Model,专门负责和数据库进行交互,对应的文件 models.py。

Model中内嵌了ORM框架,不需要直接面向数据库编程。而是定义模型类,通过模型类和对象完成数据库表的增删改查。

ORM框架就是把数据库表的行与相应的对象建立关联,互相转换,使得数据库的操作面向对象。

在ORM框架中,类对应数据表,对象对应数据表中的行,对象的属性对应数据表中对应行的字段。

使用ORM框架操作数据库,可以不用关心底层具体使用的是哪个数据库,只需要关心ORM框架即可。

如果需要使用不同的数据库,我们只需要在Django框架中进行相应的配置,ORM会自动连接对应的数据库,如果需要对数据库进行增删改查,我们也只需要操作ORM即可,ORM会自动生成对应的数据库的sql语言。

2. Django使用ORM进行数据库开发

2.1 步骤

  1. 定义模型类
  2. 模型迁移
  3. 操作数据库

2.2 数据库表格的相关信息

2.3 定义模型类

定义模型类时,主键会自动生成。

  • 根据书籍表结构设计模型类:
  • 模型类:BookInfo
  • 书籍名称字段:name
  • 根据人物表结构设计模型类:
  • 模型类:PeopleInfo
  • 人物姓名字段:name
  • 人物性别字段:gender
  • 外键约束:book
  • 外键要指定所属的模型类book = models.ForeignKey(BookInfo)

定义模型类,在对应的子应用中的models.py文件中进行定义。

定义的模型类继承自models.Model.

from django.db import models
# Create your models here.
# 模型类:BookInfo
class BookInfo(models.Model):
    # 书籍名称字段:name
    # 字段的类型为 字符类型字段(CharField) 最长的长度为10
    name = models.CharField(max_length=10)
# 模型类:PeopleInfo
class PeopleInfo(models.Model):
    # 人物姓名字段:name
    name = models.CharField(max_length=10)
    # 人物性别字段:gender
    # 布尔类型
    gender = models.BooleanField()
    # 外键约束:book
    # 外键要指定所属的模型类
    book = models.ForeignKey(BookInfo)


相关文章
|
7天前
|
Linux 数据库管理 Python
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
66 4
|
4天前
|
开发框架 数据库 开发者
Web开发新境界:用Python玩转Django和Flask!
【6月更文挑战第12天】Python的Web开发框架Django和Flask各有千秋。Django是全能型框架,适合快速开发大型应用,提供ORM、模板引擎、URL路由和后台管理等全面功能。Flask则轻量级且灵活,适用于小型到中型应用,以其简单易用、高度可扩展和灵活路由著称。两者结合使用,能应对各种Web开发需求。
|
1天前
|
机器学习/深度学习 调度 Python
SOFTS: 时间序列预测的最新模型以及Python使用示例
这是2024年4月《SOFTS: Efficient Multivariate Time Series Forecasting with Series-Core Fusion》中提出的新模型,采用集中策略来学习不同序列之间的交互,从而在多变量预测任务中获得最先进的性能。
11 4
|
1天前
|
小程序 前端开发 JavaScript
计算机Python项目|django傣族节日及民间故事推广小程序
计算机Python项目|django傣族节日及民间故事推广小程序
|
2天前
|
前端开发 JavaScript 数据安全/隐私保护
计算机Python项目|django学生成绩管理系统
计算机Python项目|django学生成绩管理系统
|
8天前
|
数据采集 存储 数据库
优化 Django 模型设计:解决重复爬虫任务和商品数据
在开发数据采集(爬虫)应用时,我们常常面临这样一个问题:不同用户提交了相同的采集任务。为了避免在数据库中存储重复的 URL 和商品数据,我们需要优化模型设计。本文将介绍如何设计 Django 模型,以解决这个问题,并确保数据的一致性和完整性。
|
9天前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:Transformer模型
使用Python实现深度学习模型:Transformer模型
20 0
使用Python实现深度学习模型:Transformer模型
|
11天前
|
SQL 前端开发 关系型数据库
28. Python Web 编程:Django 基础教程
28. Python Web 编程:Django 基础教程
17 2
|
1月前
|
前端开发 数据库 Python
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
|
1月前
|
存储 关系型数据库 MySQL
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
30665 0