首页 > 其他分享 >Django中的ORM框架

Django中的ORM框架

时间:2024-04-22 16:44:18浏览次数:24  
标签:段值 框架 Django objects ORM User 字段名

Django中的ORM框架

【1】什么是ORM

  • ORM是一种将对象与关系型数据库之间的映射的技术,主要实现了以下三个方面的功能:
    • 数据库中的表映射为Python中的类
    • 数据库中的字段映射为Python中的属性
    • 数据库中的记录映射为Python中的实例
  • ORM的主要优点是可以减少开发人员编写重复的SQL语句的时间和工作量,并且可以减少由于SQL语句的调整和更改所带来的错误。

【2】DjangoORM框架的优点

  • 与其他ORM框架相比,Django ORM拥有以下优点:
  • 简单易用:Django ORM的API非常简单,易于掌握和使用。
  • 丰富的API:Django ORM提供了丰富的API来完成常见的数据库操作,如增删改查等,同时也支持高级查询和聚合查询等操作。
  • 具有良好的扩展性:Django ORM可以与其他第三方库进行无缝集成,如Django REST framework、Django-Oscar等。
  • 自动映射:Django ORM支持自动映射,开发者只需要定义数据库表的结构,就可以自动生成相应的Python类,从而减少开发过程中的重复代码量。

【3】ORM之建表操作

(1)定义模型表

models.py

from django.db import models

# Create your models here.


class User(models.Model):
    username = models.CharField(max_length=255)
    password = models.IntegerField()

(2)数据库迁移

# 生成迁移文件
python manage.py makemigrations
# 迁移记录生效 保存到数据库里
python manage.py migrate

【4】ORM操作之数据操作

from app1.models import User

(1)增加

User.objects.create(字段名=字段值)

(2)查询

# 获取到当前表中的全部数据
User.objects.all()
# 根据指定条件筛选数据
# 方式一
User.objects.get(字段名=字段值)
# 方式二
User.objects.filter(字段名=字段值)

(3)更改

# 方式一:先查询直接修改
data=User.objects.filter(字段名=字段值)
data.update(字段名=字段值)
# 方式二:先查询后修改
data=User.objects.get(字段名=字段值)
data.字段名=字段值
data.save()

(4)删除

data=User.objects.filter(字段名=字段值)
data.delete(字段名=字段值)

标签:段值,框架,Django,objects,ORM,User,字段名
From: https://www.cnblogs.com/unrealqcc/p/18150901

相关文章

  • Django三板斧
    三板斧【1】HttpResponseDjango自带的类,用于构建基本的HTTP响应。当需要直接返回纯文本数据(如JSON格式的数据)或者HTML页面时,可以使用HttpResponse。fromdjango.httpimportHttpResponsefromdjango.utilsimportjsondefindex(request):data={"user......
  • multi-agent框架camel学习笔记(二)RAG和向量数据库
    本系列想学习如何从零开始搭建一个multi-agent系统并融入到应用中,这篇文章主要写其中的LLM-agent的核心模块RAG和向量数据库,以及Camel系统中是如何使用RAG。1.为什么要用RAG(检索增强生成)先聊下什么是RAG,为什么我们要用RAG:RAG和向量数据库本身不是很新的技术,传统的搜广推里也......
  • Flask框架基础入门
    Flask是一个非常小的PythonWeb框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。1)路由route的创建通过创建路由并关联函数,实现一个基本的网页:fromflaskimportFlask#用当......
  • day18_我的Java学习笔记 (Logback日志框架、阶段项目--详见视频教程)
    1.日志框架1.1日志技术的概述1.2日志技术体系结构1.3Logback概述需要3个文件:1.4Logback快速入门1.4.1在项目下新建lib文件夹,导入Logback的相关jar包,并全选右键添加到项目依赖库中新建工程:logback-app将3个jar包拷贝到lib目录下全选,右键,选择......
  • pytest + yaml 框架 -68.新增全局请求参数配置verify和headers
    前言最近有小伙伴提到如何全局添加请求参数verify=False和全局请求添加头部参数如:{"x-token":"xxx"}之前的版本可以用fixture解决,v1.5.8版本可以支持在config中配置fixture更新全局请求第一种解决方案,通过fixture来更新全局session会话[email protected](s......
  • 记录:Flask 框架中,g对象的生命周期
    在Flask框架中,g对象是一个特殊的全局对象,它的设计目的是为了在不同的请求处理函数之间共享数据,但不需要将数据存储在session或数据库中。g对象的生命周期与当前的请求/响应周期紧密相关。以下是g对象生命周期的要点:创建:当一个请求到达Flask应用时,g对象会被创建并初始......
  • 如何基于Django中的WebSockets和异步视图来实现实时通信功能
    本文分享自华为云社区《结合Django中的WebSockets和异步视图实现实时通信功能的完整指南》,作者:柠檬味拥抱。在现代Web应用程序中,实时通信已经成为了必不可少的功能之一。无论是在线聊天、实时数据更新还是实时通知,都需要通过实时通信技术来实现。Django作为一个强大的Web框架,提......
  • django的settings
    django的settings模板jwt配置fromdatetimeimporttimedelta#jwt配置SIMPLE_JWT={#AccessToken的有效期'ACCESS_TOKEN_LIFETIME':timedelta(minutes=5),#RefreshToken的有效期'REFRESH_TOKEN_LIFETIME':timedelta(days=7),......
  • LeetCode 1331. Rank Transform of an Array
    原题链接在这里:https://leetcode.com/problems/rank-transform-of-an-array/description/题目:Givenanarrayofintegers arr,replaceeachelementwithitsrank.Therankrepresentshowlargetheelementis.Therankhasthefollowingrules:Rankisanintegers......
  • Django不显示CSS的效果(基于Django模板的静态资源配置问题)
    在搞毕设过程中,习惯起见我直接在网上找了现成的前端设计页面,如图:这种前端项目的结构一般是一个login.html、一个style.css、一个背景图片即可搞定的,直接点击html,浏览器中打开的就是上图所示的界面效果。但是:当我把前端所有文件扔进DjangoApp的templates文件夹后,运行项目的效果......