当前位置: 首页 > article >正文

Django框架与ORM框架

ORM框架

安装第三方模块
  • pip install mysqlclient

  • 创建、修改、删除数据库中的表
  • 不需要我们写SQL语句,且无法创建数据库

  • 操作表中的数据
  • 同样也不需要写SQL语句;表中数据的增、删、改、查

创建数据库
  • 启动MySQL服务

  • 使用自带工具创建数据库

create database liupc02 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

Django连接数据库

  • 在settings.py 文件中进行配置和修改

将自带的sqlite数据库注释

添加数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  #
默认
        'NAME': 'django(注意更换自己的数据库名称)',  # 连接的数据库  #一定要存在的数据库名
        'HOST': '127.0.0.1',  # mysql的ip地址
        'PORT': 3306,  # mysql的端口
        'USER': 'root',  # mysql的用户名
        'PASSWORD': 'youpwd!!!注意更换'  # mysql的密码
    }
}

Django操作表

  • 在models.py 文件中操作

创建表

  • name = models.CharField(max_length=32)

相当于SQL语句中的name varchar(32)


·      password = models.CharField(max_length=64)

相当于SQL语句中的passwd varchar(64)


·      age = models.IntegerField()

相当于SQL语句中的age int()

  • 并且Django会自动默认在表头添加主键ID

执行命令
  • 注意:操作这个命令之前需要app提前注册

  • python manage.py makemigrations

  • python manage.py migrate

  • 查看是否创建成功

删除表
  • 将models.py 文件中的内容 注释 或 删除 掉即可(想要删除/注释哪个表就删除/注释哪个类)

修改表
  • 如果要向表中添加一列就需要使用命令:python manage.py makemigrations

  • 首先需要向class类中添加数据,然后再执行上述命令
  • 在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据(1. 手动输入一个只; 2. 设置默认值(default = 2); 3. 允许为空(null = True, blank = Ture ))

ORM-增、删、改、查

新增

  • UserInfo.objects.create(name= "liupc", password= "123456", age=20)

相当于SQL语句中的inster into

删除

  • UserInfo.objects.filter(name="liupc").delete()

先当与SQL语句中的delete 列名 from 表名 where 判断条件

查看

  • UserInfo.objects.all()

相当与SQL语句中的select * from

修改

  • UserInfo.objects.filter(id=2).update(password=999)

相当于数据库中的update 表名 set 列=值 where 条件;


http://www.kler.cn/a/448440.html

相关文章:

  • 入侵他人电脑,实现远程控制(待补充)
  • 人脸生成3d模型 Era3D
  • 左神算法基础巩固--1
  • OpenResty、Lua介绍认识
  • vue2 - Day03 - (生命周期、组件、组件通信)
  • 深度学习试题及答案解析(二)
  • Git实用指南(精简版)
  • Vulnhub靶场Nginx解析漏洞复现
  • Chromium GN目标指南 - 查看GN目标(三)
  • C++简明教程(文章要求学过一点C语言)(3)
  • [机器学习]XGBoost(1)——前置知识
  • Android水波纹搜索效果
  • Java并发编程框架之综合案例—— 分布式爬虫(四)
  • springboot基于Java的校园导航微信小程序的设计与实现
  • React+Vite项目框架
  • 如何构建一个简单的SpringBoot程序
  • 《软件工程文档攻略:解锁软件开发的“秘籍”》
  • 基于Spring Boot的营销项目系统
  • 题解:单调栈求解良好的感觉
  • leetcode 面试经典 150 题:无重复字符的最长子串
  • [react]searchParams转普通对象
  • 【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE
  • vue3 setup模式使用事件总线Event bus用mitt,app.config.globalProperties.$bus
  • MySQL 主从复制与高可用
  • MongoDB(下)
  • 深度学习之目标检测——RCNN