📜  django sqlite 数据库 - SQL (1)

📅  最后修改于: 2023-12-03 15:00:26.755000             🧑  作者: Mango

Django SQLite 数据库 - SQL

Django 是一个使用 Python 编写的 Web 应用程序框架,其内置的默认数据库是 SQLite。SQLite 是一种轻量级的关系型数据库管理系统,非常适合小型应用程序或原型开发。

在 Django 中使用 SQLite 数据库非常方便,可以通过 Django ORM (Object-Relational Mapping)来进行数据库操作,也可以直接使用 SQL 语句来进行操作。

使用 Django ORM 操作 SQLite 数据库
连接数据库

Django 的默认数据库配置是在 settings.py 文件中进行的,可以通过以下代码来连接数据库:

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

其中,ENGINE 指定数据库类型,NAME 指定数据库文件路径。

创建数据库表

在 Django 中,每个 Model 对应数据库中的一个表。可以通过在 models.py 文件中定义 Model 类来创建数据库表:

# models.py
from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()
    email = models.EmailField()

    def __str__(self):
        return self.name

这个 Model 定义了一个名为 MyModel 的表,包含字段 name(最大长度为 50)、age(整数类型)和 email(Email 类型)。

插入数据

使用 Django ORM 插入数据非常简单,可以通过以下代码来插入一个 MyModel 实例:

from myapp.models import MyModel

obj = MyModel(name='Tom', age=20, email='tom@example.com')
obj.save()
查询数据

使用 Django ORM 查询数据也非常简单,可以通过以下代码来查询 MyModel 中所有数据:

from myapp.models import MyModel

queryset = MyModel.objects.all()
for obj in queryset:
    print(obj.name, obj.age, obj.email)
更新数据

使用 Django ORM 更新数据也非常简单,可以通过以下代码来更新一个 MyModel 实例:

from myapp.models import MyModel

obj = MyModel.objects.get(name='Tom')
obj.age = 30
obj.save()
删除数据

使用 Django ORM 删除数据也非常简单,可以通过以下代码来删除一个 MyModel 实例:

from myapp.models import MyModel

obj = MyModel.objects.get(name='Tom')
obj.delete()
使用 SQL 语句操作 SQLite 数据库

除了使用 Django ORM 进行数据库操作外,还可以使用 SQL 语句进行操作。可以通过以下代码来执行 SQL 语句:

from django.db import connection

with connection.cursor() as cursor:
    cursor.execute('SELECT * FROM myapp_mymodel;')
    rows = cursor.fetchall()
    for row in rows:
        print(row)

其中,connection.cursor() 返回一个游标对象,可以通过 execute() 方法执行 SQL 语句,fetchall() 方法获取所有的查询结果。可以根据需求替换 SQL 语句来进行数据操作。

总结

Django 提供了方便的 ORM 工具和基于 SQL 语句的数据库操作方式,使得开发者可以更加方便地对 SQLite 数据库进行操作。无论是使用 Django ORM 还是 SQL 语句,都可以轻松地进行 CRUD 操作。