使用Django框架中ORM系统实现对数据库数据增删改查

使用Django框架的ORM系统可以方便地实现对数据库数据的增删改查操作。下面将详细介绍如何使用ORM系统进行操作:

配置数据库连接信息

首先,在项目的settings.py文件中,配置数据库连接信息,例如:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'mydatabase_user',
        'PASSWORD': 'mydatabase_password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

定义模型类

在Django中,ORM系统的操作是基于模型类的。模型类是Python中的一个类,用于描述数据库中的表结构,包括表的字段和约束等信息。例如,我们定义一个Book类,表示一本书的信息:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publish_date = models.DateField()
    pages = models.IntegerField()

上述代码定义了一个Book类,继承自models.Model基类,表示一个书籍。该类有4个属性,分别是titleauthorpublish_datepages,分别对应了数据库表中的4个字段。CharField表示字符串类型,max_length参数表示最大长度;DateField表示日期类型;IntegerField表示整数类型。

数据库迁移

在定义了模型类后,需要使用Django的数据库迁移工具进行数据表的创建,命令如下:

python manage.py makemigrations
python manage.py migrate

执行以上命令之后,Django会根据模型类的定义,自动在数据库中创建相应的数据表。

数据库的增删改查操作示例

数据的插入

使用ORM系统向数据表中插入新的数据,可以用以下代码:

from datetime import datetime
from myapp.models import Book

# 创建一个Book对象
new_book = Book(title='Python从入门到精通', author='Lucas', publish_date=datetime.now(), pages=388)
# 保存这个对象到数据库中
new_book.save()

在上面的代码中,Book类的构造函数传入了4个参数:titleauthorpublish_datepages,代表了一本新书的信息。通过new_book.save()方法,将这个新的数据保存到数据库中。

数据的修改

使用ORM系统对数据进行修改时,需先通过筛选器将需要修改的记录查询出来,然后对其进行修改后保存到数据库中。这里我们修改书籍的页数,代码如下:

# 查询所有的Python书籍
py_books = Book.objects.filter(title__contains='Python')
# 修改所有Python书籍的页数
py_books.update(pages=500)

在上面的代码中,Book.objects.filter()方法用于筛选出所有书名包含"Python"的书籍,返回一个QuerySet对象。调用该对象的update()方法,将所有Python书籍的页数修改为500,并将修改结果保存到数据库中。

数据的查询和删除

使用ORM系统查询数据和删除数据,都可以通过筛选器进行控制。例如,我们查询所有Python书籍,并按出版日期排序,代码如下:

# 查询所有的Python书籍,并按出版日期降序排列
py_books = Book.objects.filter(title__contains='Python').order_by('-publish_date')

而要删除某个书籍,则需要首先通过筛选器将其查询出来,然后调用其delete()方法进行删除:

# 查询书名为"Python从入门到精通"的书
book_to_delete = Book.objects.get(title='Python从入门到精通')
# 删除该书
book_to_delete.delete()

以上就是使用Django框架中ORM系统实现对数据库数据增删改查的完整攻略,通过上述过程,我们可以轻松完成数据的常规操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Django框架中ORM系统实现对数据库数据增删改查 - Python技术站

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

相关文章

  • python-django rest framework框架之视图

    视图 :常用 1和4 两种 1. 原始的APIView class IndexView(views.APIView): def get(self, request, *args, **kwargs): user_list = models.UserInfo.objects.all() ser = IndexSerializer(instance=user_l…

    Django 2023年4月11日
    00
  • django框架学习三:使用DRF框架,引入序列化器,实现对数据库的增删改查操作

    针对上一篇文章中的痛点,本次引入Django REST framework,使用序列化器来优化代码: 1、安装与配置:   安装:pip install -i https://pypi.douban.com/simple/ djangorestframework   配置:settings.py中注册子应用:INSTALLED_APPS = [ ‘rest_…

    Django 2023年4月9日
    00
  • Django之ajax(jquery)封装(包含 将 csrftoken 写入请求头方法)

    由于支持问题,未使用 es6 语法 _ajax.js /** * 发起请求 * @param url 请求地址 * @param data 请求数据 { } json格式 * @param type 请求类型 get|post * @param success 请求成功回调方法(如果支持es6,使用 Promise 更方便) * @param fail 请求…

    Django 2023年4月11日
    00
  • django框架学习:二十五.django xadmin管理后台

    前面学习了django自带的admin后台管理感觉页面不美观,网上的大神优化了一版后台管理xadmin,并且开源了,在github开源下载到源码。 django 2.1.2 xadmin 2.0 python 3.6 xadmin安装 xadmin在github的源码地址https://github.com/sshwsfc/xadmin,可以用pip安装也可…

    2023年4月10日
    00
  • Django 权限认证(根据不同的用户,设置不同的显示和访问权限)

    为了实现 Django 权限认证,我们需要做以下几个步骤: 开启认证系统 在 Django 项目中,我们需要启用认证系统,以便实现权限认证。在 settings.py 文件中,需添加以下代码: INSTALLED_APPS = [ … ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘djang…

    Django 2023年5月16日
    00
  • gitlab和Django实现push自动更新

    1、设置webhook gitlab->setting->webhook:http://121.143.191.166:7000?token=23028-b396-12e5-9912-bae0483c18 2、设置django 注释掉下列所示一行,关闭CSRF MIDDLEWARE_CLASSES = [ ‘django.middleware.s…

    Django 2023年4月13日
    00
  • 详解Django的信号机制

    Django信号是一个事件触发机制。当某些事情发生时,比如模型保存,信号将被触发,并执行注册的处理函数。信号机制可以帮助我们在Django应用程序中实现解耦和扩展性。 本文将详细介绍Django信号机制的完整攻略,包括信号的定义、注册和处理函数等。 定义信号 Django中的信号被定义在signals.py文件中。下面是一个简单的示例: from djang…

    Django 2023年3月13日
    00
  • 在ubuntu16上进行nginx+uwsgi+django部署的简要步骤

    网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意。 1、首先要安装python和python-dev环境,如果没有安装python-dev后面安装有些依赖要报错。这是第一个坑。 apt-get install python python-dev pip 2、安装uwsgi要先安装gcc的编译环境。这是第二个坑。…

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