Django ORM教程:数据库增删改查操作
43 浏览量
更新于2024-08-30
收藏 58KB PDF 举报
"这篇文档主要介绍了Django框架中的ORM(对象关系映射)操作,包括如何使用ORM进行数据库的增删改查,以及如何设计模型和执行数据库迁移。"
Django是一个基于Python的Web开发框架,它内置了ORM机制,使得开发者可以通过Python代码直接操作数据库,而无需编写SQL语句。ORM将数据库操作与业务逻辑紧密结合,提高了开发效率和代码的可读性。
在Django中,ORM的工作原理是这样的:首先,我们定义一个Python类来代表数据库中的一个表,类的属性则对应表中的字段。例如,在模型文件`models.py`中创建一个`Book`类,包含`name`、`price`、`Date`和`auth`、`publish`等字段,这些字段都继承自`models.Model`:
```python
from django.db import models
class Book(models.Model):
name = models.CharField(max_length=32)
price = models.IntegerField()
Date = models.DateField()
auth = models.CharField(max_length=32)
publish = models.CharField(max_length=32)
```
这里的`CharField`和`IntegerField`等是Django提供的字段类型,它们对应SQL中的数据类型。
当模型定义完成后,我们需要通过命令行工具进行数据库迁移,这包括两步:
1. `python manage.py makemigrations`: 这个命令会检查模型文件的变化,并生成对应的数据库迁移文件。
2. `python manage.py migrate`: 执行这个命令,系统会应用迁移文件,实际地更新数据库结构。
Django的设置文件`settings.py`中,默认使用SQLite3作为数据库引擎,如:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
```
`BASE_DIR`是项目根目录,这里指定了数据库文件的路径。
在完成数据库模型和迁移之后,可以使用Django提供的管理接口或自定义视图进行数据的增删改查操作。例如,创建一个新的书籍记录可以通过创建`Book`类的实例并调用`save()`方法实现:
```python
book = Book(name='书名', price=123, Date='2022-01-01', auth='作者', publish='出版社')
book.save()
```
同时,`Book`类还可以提供查询方法,如`get()`、`filter()`等,用于检索数据库中的记录。
在前端展示方面,Django提供了模板系统,可以在HTML模板文件(如`index.html`)中使用模板语言来展示数据。例如,使用`loadstaticfiles`加载静态文件,并通过Django模板语言获取并显示书籍信息。
```html
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static '/bootstrap-3.3.7/dist/css/bootstrap.css' %}">
<!-- ... -->
</head>
<body>
<!-- 在这里展示书籍数据 -->
</body>
</html>
```
总结来说,Django的ORM允许开发者用Python代码代替SQL进行数据库操作,简化了开发流程,提高了开发效率。通过定义模型,执行数据库迁移,以及使用模板系统,可以方便地实现Web应用的数据管理与展示。
2019-08-10 上传
2016-12-15 上传
2019-09-18 上传
2023-06-02 上传
2023-10-24 上传
2023-07-14 上传
2023-07-15 上传
2023-05-27 上传
2023-07-14 上传
weixin_38717896
- 粉丝: 4
- 资源: 885
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作