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知识库 -> Django7:模型层及ORM: -> 正文阅读

[Python知识库]Django7:模型层及ORM:

一、Django配置MySQL

1、安装mysqlclient(版本mysqlclient 1.3.13以上)。

? ? ? ?安装前确认Ubuntu是否安装python3-dev和default-libmysqlclient-dev:

(1)查看依赖

sudo apt list –installed|grep -E ‘libmysqlclient-dev|python3-dev’

(2)若无,则安装依赖

sudo apt-get install python3-dev default-libmysqlclient-dev

(3)安装mysqlclient

sudo pip3 install mysqlclient

(4)查看mysqlclient是否安装成功

sudo pip3 freeze|grep -i 'mysql'

2、创建数据库

(1)进入mysql数据库:

create database 数据库名default charset utf8;

通常数据库名跟项目名一致

(2)settings.py配置数据库

修改DATABASES配置项,将sqlite3改为mysql

  • ENGINE:指定数据库存储引擎
  • NAME:数据库名
  • USER:登录数据库用户名
  • PASSWORD:数据库密码
  • HOST/POST:数据IP和端口

例:settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        # 'NAME': BASE_DIR / 'db.sqlite3',
        'NAME': 'mysite1',
        'USER': 'root',
        'PASSWORD':'123',
        'HOST': 'localhost',
        'PORT':'3306'
    }
}

三、模型和ORM

1、模型

  • 模型是一个python类,有django.db.models.Model派生出来的子类。
  • 一个模型来代表数据库中的一张数据库表
  • 模型类中每个类属性都代表数据库中的一个字段
  • 模型是数据交互的接口,是表示和操作数据库的方法和方式

例:模型类创建

from django.db import models

class 模型类型(models.Model):
	字段名 = models.字段类型(字段类型)

2、ORM

(1)定义

? ? ? ?ORM(Object Relational Mapping)即对象关系映射,是一种程序数据,允许你使用类和对象对数据库进行操作,从而避免sql语句操作数据里。

(2)作用

  • 建立模型和表之间的对于关系,允许我们通过面向对象的方式来操作数据库;
  • 根据设计的模型类生成数据库中的表格;
  • 通过简单的配置就可进行数据库的切换。

(3)优点

  • 只需面向对象编程,不需要面向数据库编写代码:
  • 实现了数据模型与数据的解耦,屏蔽不同数据操作上的差异

(4)缺点

  • 对于复杂业务,使用成本高
  • 根据对象的操作转换成sql语句,根据查询的结果转换成对象,在映射过程中有性能损失。

3、数据库迁移

?????? 迁移是Django同步您对模型所做更改(添加字段,删除模型等)到你的数据库模型的方式。

(1)生成迁移文件:python3 manage.py makemigrations

? ? ? ?将应用下的models.py文件生成一个中间文件,并保存在migrations文件夹中。

(2)执行迁移脚本程序:python3 manage.py migrate

? ? ? ?执行迁移程序实现迁移。将每个应用下的migrations目录中的中间文件同步回数据库。

例:

(1)创建应用:

python3 manage.py startapp bookstore

(2)注册应用:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'music',
    'bookstore',
]

(3)bookstore/model.py

from django.db import models


class Book(models.Model):
    title = models.CharField('书名', max_length=50, default='')
    price = models.DecimalField('价格', max_digits=7, decimal_places=2)

(4)生成迁移文件

python3 manage.py makemigrations

(5)执行迁移脚本

python3 manage.py migrate

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:36:21  更:2022-05-09 12:36:29 
 
开发: 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/15 15:25:36-

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