django增删改查
时间: 2023-09-11 09:10:27 浏览: 113
Django是一个流行的Python web框架,提供了强大的数据库操作功能。下面是关于Django的增删改查的基本操作:
1. 增加(Create)数据:
- 定义一个模型(Model),表示数据库中的表结构。
- 使用模型的ORM(对象关系映射)API,如`Model.objects.create()`方法来创建新的数据记录。
2. 查询(Retrieve)数据:
- 使用模型的ORM API,如`Model.objects.get()`方法来获取单个数据记录。
- 使用模型的ORM API,如`Model.objects.filter()`方法来获取满足条件的多个数据记录。
3. 更新(Update)数据:
- 使用模型的ORM API,如`Model.objects.get()`方法获取要更新的数据记录。
- 修改获取到的数据记录的属性值。 - 调用数据记录的`save()`方法来保存更新。
4. 删除(Delete)数据:
- 使用模型的ORM API,如`Model.objects.get()`方法获取要删除的数据记录。
- 调用获取到的数据记录的`delete()`方法来删除。
这只是Django数据库操作的基本概念,实际应用中可能会涉及更复杂的查询和操作。你可以参考Django官方文档或其他教程来了解更多详细信息。
相关问题
django的增删改查
### Django 实现 CRUD 操作教程
#### 配置 `settings.py` 文件
为了在 Django 项目中集成支持 CRUD 的扩展功能,需修改项目的设置文件 `settings.py`,确保其中包含了必要的应用程序:
```python
INSTALLED_APPS = [
...
'ninja_crud',
...
]
```
此配置使得可以利用 Django Ninja CRUD 提供的功能来简化开发过程[^1]。
#### 定义模型类
定义好相应的数据库表结构对于执行 CRUD 至关重要。通过继承自 `django.db.models.Model` 来创建新的模型类表示一张表格及其字段属性。例如:
```python
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=100)
def __str__(self):
return self.title
```
上述代码片段展示了如何建立名为 "Book" 的书籍实体以及其两个主要属性——书名 (`title`) 和作者姓名 (`author`)[^5]。
#### 执行迁移命令同步到数据库
每当更改了模型定义之后都需要运行如下两条指令让这些变化反映至实际使用的数据库之中:
```bash
python manage.py makemigrations
python manage.py migrate
```
这两条命令分别用于生成并应用针对当前版本所做的任何模式上的调整[^4]。
#### 编写视图函数处理请求响应逻辑
接下来就是编写具体的业务逻辑部分,在这里主要是指负责接收客户端发来的 HTTP 请求并对之作出适当回应的方法体。借助于 Django Ninja CRUD 可以更加便捷地完成这一工作,因为该库允许开发者采用声明式的语法描述所需的操作接口而无需手动编码每一个细节[^2]。
假设已经按照官方文档说明完成了必要初始化,则可参照下面的例子快速搭建起一套完整的 RESTful API 接口集:
```python
from ninja_crud.viewsets import ModelViewSet
from .models import Book
class BookViewSet(ModelViewSet):
model_class = Book
# 自动注册一系列标准路径映射关系...
# 注册路由规则以便能够访问新设立的服务端点
router.register("books", BookViewSet, basename="book")
```
这段脚本自动为指定的数据集合提供了基本的增删改查能力,并且还附带了一些额外特性比如分页显示结果列表等[^3]。
#### 测试验证各项功能正常运作
最后一步是要确认所编写的程序确实按预期行事。可以通过多种方式来进行测试;最简单的是直接调用 Python Shell 或者 PyCharm 内建的交互环境尝试一些简单的查询语句看看能否得到期望的结果。另外也可以考虑使用 Postman 这样的第三方工具模拟真实场景下的网络通信流程从而更全面彻底地检验整个系统的健壮性和稳定性。
django mysql 增删改查
### 使用Django与MySQL执行CRUD操作
#### 安装依赖包
为了使Django能够连接到MySQL数据库,需要安装`mysqlclient`或`pymysql`作为Python的MySQL驱动程序。推荐使用`pip install mysqlclient`命令来完成这一过程[^1]。
#### 配置settings.py文件中的DATABASE设置
在项目的配置文件内指定要使用的数据库引擎为`django.db.backends.mysql`,并提供必要的认证信息以便访问特定的MySQL实例:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_database_name', # 替换成自己的数据库名
'USER': 'root', # 用户名
'PASSWORD': '', # 密码
'HOST': 'localhost', # 主机地址
'PORT': '3306' # 端口号,默认情况下可以省略此选项
}
}
```
#### 创建模型类
定义数据表结构对应的Python类,这些类继承自`models.Model`,并且每一个属性代表表格里的一列。例如创建一个名为Item的数据表:
```python
from django.db import models
class Item(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
def __str__(self):
return self.name
```
#### 执行迁移指令同步模式至实际数据库中
运行如下两条终端命令让上述更改生效:
```bash
python manage.py makemigrations
python manage.py migrate
```
#### 实现基本的CRUD功能
##### Create (新增记录)
通过调用`.objects.create()`方法向Items表插入一条新纪录:
```python
new_item = Item.objects.create(name="Example", description="This is an example item.")
print(f"Created new item {new_item}")
```
##### Read (读取记录)
利用`.filter()`, `.get()`等查询API获取符合条件的对象列表或者单个对象:
```python
items_list = Item.objects.filter(description__contains='example')
for i in items_list:
print(i.name, i.description)
single_item = Item.objects.get(id=1)
print(single_item.name, single_item.description)
```
##### Update (更新记录)
找到目标对象之后可以直接修改其字段值再保存回去;也可以采用`.update()`批量更新多条目:
```python
target_item = Item.objects.get(id=1)
target_item.name = "Updated Name"
target_item.save()
# 或者直接批量更新
Item.objects.filter(id=1).update(name="Another Updated Name")
```
##### Delete (删除记录)
同样先定位待移除的目标实体,接着调用它的`.delete()`成员函数即可实现删除动作:
```python
to_be_deleted = Item.objects.get(id=1)
to_be_deleted.delete()
```
阅读全文