django如何连接sqlite数据库?

目录

一、SQLite数据库简介

二、Django连接SQLite数据库

1、配置数据库

2、创建数据库表

[三、使用Django ORM操作SQLite数据库](#三、使用Django ORM操作SQLite数据库)

1、定义模型

2、创建对象

3、查询对象

总结


本文将深入探讨如何在Django框架中连接和使用SQLite数据库。我们将介绍SQLite数据库的特点,Django的数据库配置,以及如何通过Django的ORM(对象关系映射)进行数据库操作。

一、SQLite数据库简介

SQLite是一个轻型的数据库,它以文件形式存储数据,无需单独的数据库服务器。SQLite的数据库就是一个文件,这使得SQLite的部署和维护都非常方便。同时,SQLite支持大多数的标准SQL语法,使得它在使用上非常直观。

二、Django连接SQLite数据库

在Django中连接SQLite数据库非常简单,只需要在项目的settings.py文件中进行配置即可。Django默认使用SQLite作为开发环境的数据库。

1、配置数据库

在settings.py文件中,找到DATABASES配置项,默认的配置如下:

python 复制代码
DATABASES = {  
    'default': {  
        'ENGINE': 'django.db.backends.sqlite3',  
        'NAME': BASE_DIR / 'db.sqlite3',  
    }  
}

上述配置表示使用SQLite作为默认的数据库,数据库文件名为db.sqlite3,存储在项目的根目录下。如果需要更改数据库文件的位置,只需要修改'NAME'的值即可。

2、创建数据库表

当我们在Django中定义了模型(Model)后,Django会自动为我们生成对应的数据库表。只需要运行下面的命令,Django就会自动创建或更新数据库表。

python 复制代码
python manage.py makemigrations  
python manage.py migrate

三、使用Django ORM操作SQLite数据库

Django提供了一个强大的ORM(对象关系映射),使得我们可以像操作Python对象一样操作数据库。下面是一个简单的例子,演示如何使用Django ORM创建一个模型,并对其进行CRUD操作。

1、定义模型

在Django的app中,我们可以定义一个模型,例如一个简单的博客模型:

python 复制代码
from django.db import models  
  
class Blog(models.Model):  
    title = models.CharField(max_length=100)  
    content = models.TextField()  
    created_at = models.DateTimeField(auto_now_add=True)  
    updated_at = models.DateTimeField(auto_now=True)

2、创建对象

创建模型的对象非常简单,只需要像创建Python对象一样即可:

python 复制代码
blog = Blog(title='My first blog', content='Hello, world!')  
blog.save()  # 将对象保存到数据库

3、查询对象

Django的ORM提供了丰富的查询接口,我们可以非常方便地查询数据库中的数据:

python 复制代码
# 获取所有的博客  
blogs = Blog.objects.all()  
  
# 根据ID获取博客  
blog = Blog.objects.get(id=1)
更新和删除对象
更新和删除对象同样很简单:

python
# 更新对象  
blog.title = 'New title'  
blog.save()  # 更新到数据库  
  
# 删除对象  
blog.delete()  # 从数据库中删除

总结

通过以上的介绍,我们可以看到,Django连接和使用SQLite数据库非常简单。Django的强大ORM使得我们可以像操作Python对象一样操作数据库,大大提高了开发效率。同时,SQLite的轻便和易用性,使得它成为开发环境的理想选择。

相关推荐
oradh9 小时前
Oracle数据库中的Java概述
java·数据库·oracle·sql基础·oracle数据库java概述
2301_7950997410 小时前
如何优化SQL中大批量数据的物理删除_分批次与间隔控制
jvm·数据库·python
2301_8125396710 小时前
CSS如何引入CSS形状生成器_通过自定义属性实现图形化样式
jvm·数据库·python
maxmaxma10 小时前
Claude Code集成DeepSeek-V4-pro全栈开发 - MCP 连接数据库
数据库·ai
lb291710 小时前
navicat连接Oracle报错了:“身份证明检索失败”
数据库·oracle·连接oracle数据库报错
xfhuangfu10 小时前
Oracle 12.2 ORA-600 数据库发生重启案例
数据库·oracle
m0_6091604910 小时前
Golang怎么实现数据库连接重试_Golang如何在启动时重试连接直到数据库就绪【技巧】
jvm·数据库·python
罗超驿10 小时前
8.数据库约束学习笔记:从非空、默认、唯一与主键约束到主键自增
数据库·mysql
zxrhhm11 小时前
PostgreSQL 大规模随机数据生成完整指南
大数据·数据库·postgresql
techdashen11 小时前
Cloudflare + PlanetScale:在边缘运行全栈应用,数据库也不例外
数据库