django 常用orm操作详解

下面是关于“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日

相关文章

  • 第四篇Django之模板语言

    一 模板的执行 模板的创建过程,对于模板,其实就是读取模板(其中嵌套着模板的标签),然后将Model中获取的数据插入到模板中,最后将信息返回给用户 def current_datetime(request): now = datetime.datetime.now() html = “<html><body>It is now %s.…

    Django 2023年4月16日
    00
  • django自定义标签错误 ‘my_tag’ is not a registered tag library.

    解决办法: 在settings里的 加上红色的部分,my_tag为自定义的标签函数 后面的为其地址  TEMPLATES = [ { ‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’, ‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)] , ‘AP…

    Django 2023年4月11日
    00
  • django 執行數據遷移 報錯:HINT: Add or change a related_name argument to the definition for ‘User.user_permissions’ or ‘User.u

    解決方法: 1.在項目的settings 中,添加 AUTH_USER_MODEL=”users.UserProfile”#app名稱下的UserProfile 類其中 users 表示 你的app;UserProfile 表示你在models下 創建的類然後再執行 makemigrations users migrate users 即可 如圖:  

    Django 2023年4月12日
    00
  • 在Python的Django框架中使用通用视图的方法

    使用通用视图是Django框架中的一种常见方式来快速生成视图。本文将详细介绍在Python的Django框架中使用通用视图的方法。 一、通用视图简介 Django框架中,每个视图都必须返回一个HttpResponse对象或一个异常。使用通用视图可以让我们使用已经定义好的视图来快速生成视图实例。 通用视图被分成以下几种类型: ListView:处理显示一个对象…

    Django 2023年5月16日
    00
  • django-生成随机验证码

    Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 1   1 pip3 install pillow 基本使用 1.创建图片 from PIL import Image #导入模块 img=Image.new(mode=”RGB”,size=(120,40),color=”yellow”) f=open(“va…

    2023年4月9日
    00
  • 详解Django存在关联关系的反向查询

    Django是一款高效的Web框架,其ORM(对象关系映射)系统使得我们可以通过Python对象来操作数据库,进一步简化了开发流程。 在Django中,关联关系是非常重要的,它使我们可以在不同的模型之间建立联系。在正常的关联查询中,我们常常使用related_name属性来定义关联模型的反向查询名称,但是当我们需要反向查询时,还有一些其他的方法。 本文将深入…

    Django 2023年3月12日
    00
  • django框架学习:二十一.admin列表优化和排序

    今天学习一下列表优化和排序 ModelAdmin django的options.py里面 ModelAdmin类定义的参数可以设置admin后台列表页面,相关的参数如下      排序字段 后台列表页面,如果想按某个字段排序,可以加个ordering参数      刷新页面后,就是降序了 列表分页 列表页默认是设置的100个记录,我们也可以修改下设置成默认每…

    2023年4月10日
    00
  • Python 学习笔记13:Python + wsgi + django 配置。坑爹的python3和wsgi不兼容的解决

    今人不见古时月,今月曾经照古人。生命是如此的美丽与短暂! 学习Python已经两个月了,Python的语法通过做简单的语法题和看Python语法介绍,有了初步的了解。但上班还是要做别的事情,所以感觉学起来特别慢。有一种时不我待的感觉。   基本的语法了解了,接下来就要尽快进入到项目的实战。这样才能快速的遇到问题,并解决问题,迅速提升能力。 开始当然就是先按网…

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