Django ORM教程:数据库增删改查操作
56 浏览量
更新于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应用的数据管理与展示。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-08-05 上传
2021-04-30 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-06-02 上传
weixin_38717896
- 粉丝: 4
- 资源: 885
最新资源
- ember-scrud:通过实践学习 ember.js 和 ember-cli
- curve_fit_plus
- google-books-browser-react-native:教程摘自Manuel Kiessling的《使用React Native开始移动应用程序开发》
- meteor-feed:纯净Meteor代码构建的点餐系统
- 使用OpenCV-CNN在网络摄像头上进行人脸识别:该项目通过使用网络摄像头流式传输实时视频来检测带有或不带有面具的人脸
- Object-Oriented-Programming-Principles-and-Practice:面向对象的编程原理和实践-2018Spring
- 海浪音乐盒网站系统官方版 v3.5
- catalogue_panorama
- tadaaam:视口入口动画库
- MRSS:用于生成 mrss 饲料的样板
- 恒压供水PLC程序aa.rar
- redux-react-tutorial:在这个仓库中,我将通过在React.JS中使用它来教你Redux
- luluordrgen
- Read Body Language-crx插件
- angular-2-and-TypeScript-calculator
- learninggruntplugin-lieaqnes:学习设置 grunt 插件