django 常用orm操作详解

yizhihongxing

下面是关于“django常用orm操作详解”的完整攻略,包括两个示例说明。

Django常用ORM操作详解

简介

ORM (Object Relational Mapping) 是一种通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中的技术。 Django 是一种采用 ORM 技术的 Web 应用程序框架。本文将介绍 Django 中常用的 ORM 操作,以及如何使用 Django ORM 对数据库进行操作。

连接数据库

首先,我们需要配置一个数据库以用于存储数据。在 Django 中,可以在项目的 settings.py 文件中设置数据库连接。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database_name',
        'USER': 'database_user',
        'PASSWORD': 'database_password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

上面的代码指定了数据库的类型为 MySQL ,数据库名称为 database_name ,用户名为 database_user ,密码为 database_password ,在本地主机上运行,并且使用默认的端口号 3306

连接到数据库后,我们就可以使用 ORM 操作来创建和管理数据了。

ORM 操作

Django ORM 中的操作可以分为以下几种:

创建

通过使用 Django ORM ,我们可以向数据库中创建新的数据记录。例如,以下是向 Article 模型创建一条新记录的示例代码:

from myapp.models import Article

article = Article(headline='Article Headline', content='Article Content')
article.save()

这里,我们首先从 myapp.models 模块中导入 Article 模型。然后,创建一个新的 Article 对象,设置 headlinecontent 属性,并调用 save() 方法将数据保存到数据库中。

修改

我们可以使用 Django ORM 来修改已经存在的数据记录。例如,以下是修改 Article 模型数据的示例代码:

article = Article.objects.get(id=1)
article.headline = 'New Article Headline'
article.save()

这里,我们首先通过 objects 属性获取 Article 模型的所有数据。然后,使用 get() 方法获取 id1 的记录。接下来,修改 headline 属性,并调用 save() 方法将更改保存到数据库中。

查询

使用 Django ORM ,我们可以从数据库中检索数据。例如,以下是从 Article 模型中检索所有数据的示例代码:

from myapp.models import Article

articles = Article.objects.all()

这里,我们使用 all() 方法从 myapp.models 模块中的 Article 模型中获取所有数据。通过遍历 articles 可以检索到所有的 Article 对象。

删除

使用 Django ORM ,我们可以从数据库中删除数据记录。例如,以下是从 Article 模型中删除一条数据记录的示例代码:

article = Article.objects.get(id=1)
article.delete()

这里,我们首先通过 objects 属性获取 Article 模型的所有数据。然后,使用 get() 方法获取 id1 的记录。接下来,调用 delete() 方法将该记录从数据库中删除。

示例

示例 1:查询所有文章

假设我们有一个名为 Article 的模型,用于存储文章的数据。该模型有 titlecontent 属性。下面的代码演示了如何使用 Django ORM 从数据库中获取所有的文章:

from myapp.models import Article

articles = Article.objects.all()

for article in articles:
    print(article.title, article.content)

这里,我们首先导入 myapp.models 模块中的 Article 模型。接下来,使用 all() 方法从数据库中获取 Article 模型中的所有数据。然后,通过遍历 articles 对象来输出每篇文章的标题和内容。

示例 2:创建新文章

下面的代码演示了如何使用 Django ORM 创建一篇新的文章:

from myapp.models import Article

new_article = Article(title='New Article', content='New Article Content')
new_article.save()

这里,我们首先导入 myapp.models 模块中的 Article 模型。然后,创建一个新的 Article 对象,并设置 titlecontent 属性。最后,调用 save() 方法将新的文章保存到数据库中。

结论

Django ORM 提供了许多灵活的选项,可以轻松地管理数据库中的数据。本文中介绍的核心操作应该可以满足大多数的需求,并且使用 Django ORM 的详细文档也可以供参考。使用 ORM 可以减少 SQL 的执行量并提高开发的效率,并且可以更加易于维护和测试。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django 常用orm操作详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • linux Vue+nginx+django 实现前后端分离

    示例项目 — LuffyCity.com 的上线 具体解释,vue前端提供静态页面,且可以向后台发起get,post等restful请求 django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 下面是部署笔记: — 先从后端搞起 解决环境依赖 — 解决环境依赖的办法: 1 挨个报错的处理 2 pip3 freeze >re…

    Django 2023年4月12日
    00
  • Django 自定义权限管理系统详解(通过中间件认证)

    下面我将详细讲解“Django 自定义权限管理系统详解(通过中间件认证)”的完整攻略,并且包含两条示例说明。 1. 安装 Django 和创建项目 首先,我们需要安装 Django,并创建一个新项目: pip install django django-admin startproject mysite 2. 创建应用并添加模型 接着,创建一个新的应用,并在…

    Django 2023年5月16日
    00
  • 【开源】最近写了一个简单的网址导航网站

    前言 随着团队的成长,要管理的项目或使用的内部系统越来越多,很多内部系统都没有域名,使用IP+端口,很难记。 为了解决这个痛点,我抽空写了个导航网站~ 目前用下来效果还不错,可以基本完美的解决这个问题。 项目名称是 SiteDirectory ,代码在 Github 开源了: https://github.com/Deali-Axy/SiteDirector…

    2023年4月10日
    00
  • [Django_1_0]初次见面

    文章将写安装和第一次使用时候的操作。文章是照着文档做的,但是以后的内容会有不一样。 安装 pip install django 我这里是使用python3的,也可以使用 pip3 install django 安装成功之后也可以通过 python3 -m django –version 查看版本,如果安装失败,则会返回 No model named dja…

    2023年4月9日
    00
  • 【服务后端】MySQL数据库与Django Models不一致问题解决

    1 背景 1.8 Django的APP目录下有makemigrations文件夹,这个文件夹中的文件误删除过,后面从其他电脑的工程目录中拷贝了过来。 进行了python manage.py makemigrations和python manage.py migrate操作。 由于前后的makemigrations的文件不一致,导致数据库中的字段与Django…

    Django 2023年4月13日
    00
  • Python使用Django实现博客系统完整版

    下面是关于“Python使用Django实现博客系统完整版”的完整攻略及两条示例说明。 I. Django框架简介 Django是一个Python的开源Web框架,采用了MVT(Model-View-Template)的设计模式,从而使得Web应用的开发更为高效和稳定。通过Django,我们可以快速地构建Web应用,并且Django提供了良好的数据库操作支持…

    Django 2023年5月16日
    00
  • Django+Vue打造购物网站(三)

    商品列表页 通过商品列表页面来学习drf django的view实现商品列表页 在goods目录下新建一个views_base.py文件,用来区分drf的view和Dajngo自带的view的区别利用Django的view实现返回json数据 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 20…

    2023年4月9日
    00
  • 【Django drf】 序列化类常用字段类和字段参数 定制序列化字段的两种方式 关系表外键字段的反序列化保存 序列化类继承ModelSerializer 反序列化数据校验源码分析

    目录 序列化类常用字段类和字段参数 常用字段类 常用字段参数 选项参数 通用参数 序列化类高级用法之source source填写类中字段 source填写模型类中方法 source支持跨表查询 定制序列化字段的两种方式 准备工作 方法一:使用SerializerMethodField 方法二:在模型类中写方法 关系表外键字段的反序列化保存 前端提交的数据 …

    Django 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部