📜  Django数据库Connectitvity(1)

📅  最后修改于: 2023-12-03 14:40:48.155000             🧑  作者: Mango

Django 数据库 Connectitvity

Django 是一个广泛使用的 Web 框架,它可以与多个类型的数据库进行连接。本文将深入介绍 Django 中的数据库连接。

Django 数据库配置

在 Django 中,配置数据库的代码位于项目根目录下的 settings.py 文件中。以下是一个简单的数据库配置示例:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'charset': 'utf8mb4',
        } 
    }
}
  • ENGINE:指定要使用的数据库后端,例如 MySQL、PostgreSQL、SQLite3 等。
  • NAME:数据库的名称。
  • USER:连接数据库的用户名。
  • PASSWORD:连接数据库的密码。
  • HOST:连接数据库的主机名或 IP 地址。
  • PORT:连接数据库的端口号。
  • OPTIONS:指定数据库的一些可选参数,例如字符集等。
Django 数据库操作

Django 提供了一套对象关系映射(ORM)工具,用于操作数据库。ORM 是一种将数据库中的数据映射为 Python 对象的技术,开发者可以使用 Python 代码而不是 SQL 语句来操作数据库。

定义模型

在 Django 中,数据库中的表被称为模型,每个模型都对应着一个 Python 类。以下是一个简单的模型定义示例:

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()
    email = models.EmailField()

    def __str__(self):
        return self.name
  • models.Model:继承该类,使 Python 类成为一个数据库表的模型。
  • models.CharField():定义字符串类型的字段。
  • models.IntegerField():定义整数类型的字段。
  • models.EmailField():定义电子邮件类型的字段。
  • __str__():该方法定义了每个对象的字符串表示形式。
模型迁移

在定义完模型后,需要运行 python manage.py makemigrations 命令来生成迁移文件,该文件将存储数据模型变更的历史记录。接着运行 python manage.py migrate 命令来将迁移文件应用到数据库。

查询数据

Django 提供了多种方法来查询数据库中的数据,以下是一些常用的查询方法:

# 获取所有 Person 对象
Person.objects.all()

# 获取第一个 Person 对象
Person.objects.first()

# 根据名称查找 Person 对象
Person.objects.get(name='张三')

# 根据名称模糊查找 Person 对象
Person.objects.filter(name__contains='张')

# 根据年龄排序查找 Person 对象
Person.objects.order_by('-age')

# 根据年龄查找 Person 对象并统计数量
Person.objects.filter(age=18).count()
修改数据

以下是一些常用的修改数据库记录的方法:

# 创建 Person 对象
p = Person(name='张三', age=18, email='zhangsan@qq.com')
p.save()

# 更新 Person 对象
p = Person.objects.get(name='张三')
p.age = 19
p.save()

# 批量更新 Person 对象
Person.objects.filter(age=19).update(age=20)

# 删除 Person 对象
p = Person.objects.get(name='张三')
p.delete()
结论

在 Django 中,通过配置 settings.py 文件即可连接数据库,并且可以使用 Django 提供的 ORM 工具方便地进行增、删、查、改操作。