django mysql 增删改查
时间: 2025-01-09 07:19:09 浏览: 3
### 使用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()
```
阅读全文