当前位置:首页 > 行业动态 > 正文

django如何使用数据库

在Django中使用数据库,首先需要在settings.py中配置DATABASES,然后使用models.py定义模型,最后通过Django ORM进行数据库操作。

Django作为Python的Web开发框架,其数据库使用是项目开发中的重要环节,下面将详细阐述如何在Django中使用数据库:

1、配置数据库设置

找到配置文件:在Django项目的settings.py文件中,找到DATABASES设置块,这是一个字典,包含了与数据库相关的各种配置选项。

修改配置选项:根据需要修改以下选项,以连接到不同的数据库系统(如MySQL、PostgreSQL、Oracle和SQLite):

ENGINE:使用的数据库引擎,例如django.db.backends.mysqldjango.db.backends.postgresql等。

NAME:数据库名称。

USER:用户名。

PASSWORD:密码。

HOST:数据库主机地址。

PORT:数据库端口号。

示例配置:以下是一些常见的数据库配置示例:

SQLite

         DATABASES = {
             'default': {
                 'ENGINE': 'django.db.backends.sqlite3',
                 'NAME': BASE_DIR / 'db.sqlite3',
             }
         }

PostgreSQL

         DATABASES = {
             'default': {
                 'ENGINE': 'django.db.backends.postgresql',
                 'NAME': 'mydatabase',
                 'USER': 'mydatabaseuser',
                 'PASSWORD': 'mypassword',
                 'HOST': 'localhost',
                 'PORT': '5432',
             }
         }

MySQL

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

2、创建数据库模型

定义模型类:在应用的models.py文件中定义模型类,每个模型类都是django.db.models.Model的子类。

      from django.db import models
      
      class Author(models.Model):
          name = models.CharField(max_length=100)
          email = models.EmailField()
      
      class Book(models.Model):
          title = models.CharField(max_length=100)
          publication_date = models.DateField()
          author = models.ForeignKey(Author, on_delete=models.CASCADE)

字段类型:Django提供了多种模型字段类型,如CharFieldEmailFieldDateField等,可以根据需要选择合适的字段类型来定义模型的字段。

3、迁移数据库

生成迁移文件:在定义好模型后,需要将模型映射到数据库表中,运行以下命令生成迁移文件,该文件描述了要对数据库进行的更改:

      python manage.py makemigrations

应用迁移:运行以下命令应用迁移文件,以实际修改数据库表:

      python manage.py migrate

4、操作数据库

使用ORM进行操作:Django ORM(对象关系映射)是最常用的数据库操作方式,它允许通过Python代码与数据库交互,而不需要编写SQL语句,以下是一些常用的ORM操作:

创建记录

        author = Author(name='John Doe', email='john.doe@example.com')
        author.save()

读取记录

        authors = Author.objects.all()

更新记录

        author = Author.objects.get(id=1)
        author.email = 'john.new@example.com'
        author.save()

删除记录

        author = Author.objects.get(id=1)
        author.delete()

编写原生SQL查询:有时,Django ORM无法满足需求,需要编写原生SQL查询,这时可以使用raw()方法。

      from django.db import connection
      
      def my_custom_sql(query):
          with connection.cursor() as cursor:
              cursor.execute(query)
              rows = cursor.fetchall()
          return rows
      
      query = "SELECT * FROM myapp_author"
      authors = my_custom_sql(query)

或者:

      from myapp.models import Author
      
      authors = Author.objects.raw('SELECT * FROM myapp_author')

Django使用数据库涉及多个步骤,包括配置数据库设置、创建数据库模型、迁移数据库以及操作数据库,通过合理地使用这些功能,可以方便地在Django项目中与数据库进行交互,实现数据的存储和管理。

0