Django Mysql操作

本文详细介绍Django的ORM操作,包括数据的添加、获取、更新和删除等基本操作。通过具体实例展示了如何使用Django的模型管理器进行数据查询、筛选、排序以及批量操作。

添加数据

-- coding: utf-8 --

from django.http import HttpResponse

from TestModel.models import Test

数据库操作

def testdb(request):
test1 = Test(name=‘runoob’)
test1.save()
return HttpResponse(“

数据添加成功!

”)

获取数据

-- coding: utf-8 --

from django.http import HttpResponse

from TestModel.models import Test

数据库操作

def testdb(request):
# 初始化
response = “”
response1 = “”

# 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM
list = Test.objects.all()

# filter相当于SQL中的WHERE,可设置条件过滤结果
response2 = Test.objects.filter(id=1)

# 获取单个对象
response3 = Test.objects.get(id=1)

# 限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;
Test.objects.order_by('name')[0:2]

#数据排序
Test.objects.order_by("id")

# 上面的方法可以连锁使用
Test.objects.filter(name="runoob").order_by("id")

# 输出所有数据
for var in list:
    response1 += var.name + " "
response = response1
return HttpResponse("<p>" + response + "</p>")

更新数据

-- coding: utf-8 --

from django.http import HttpResponse

from TestModel.models import Test

数据库操作

def testdb(request):
# 修改其中一个id=1的name字段,再save,相当于SQL中的UPDATE
test1 = Test.objects.get(id=1)
test1.name = ‘Google’
test1.save()

# 另外一种方式
#Test.objects.filter(id=1).update(name='Google')

# 修改所有的列
# Test.objects.all().update(name='Google')

return HttpResponse("<p>修改成功</p>")

删除数据

-- coding: utf-8 --

from django.http import HttpResponse

from TestModel.models import Test

数据库操作

def testdb(request):
# 删除id=1的数据
test1 = Test.objects.get(id=1)
test1.delete()

# 另外一种方式
# Test.objects.filter(id=1).delete()

# 删除所有数据
# Test.objects.all().delete()

return HttpResponse("<p>删除成功</p>")
### 使用 Django 操作 MySQL 数据库 #### 安装必要依赖 为了使 Django 能够成功连接到 MySQL 数据库,需要先安装 `mysqlclient` 或其他兼容的驱动程序。通过以下命令可以完成安装: ```bash pip install mysqlclient ``` 此步骤确保了 Python 环境具备与 MySQL 交互的能力[^3]。 #### 配置数据库设置 在 Django 的项目目录中找到 `settings.py` 文件,并修改其中的 `DATABASES` 字典以适配 MySQL 数据库。以下是具体的配置示例: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 设置使用的数据库引擎为 MySQL 'NAME': 'your_database_name', # 替换为实际的数据库名称 'USER': 'your_username', # 替换为数据库用户名 'PASSWORD': 'your_password', # 替换为用户的密码 'HOST': 'localhost', # 如果是本地数据库则保持不变;如果是远程服务器,则填写 IP 地址或域名 'PORT': '3306' # 默认情况下 MySQL 使用的是 3306 端口 } } ``` 上述配置中的 `'ENGINE'` 参数指定了所使用的数据库后端,这里选择了 `django.db.backends.mysql` 来表示使用 MySQL 数据库[^2]。 #### 初始化 PyMySQL (如果适用) 某些环境中可能需要额外初始化 PyMySQL 库以便支持 MySQL 功能。可以在项目的根目录下的 `__init__.py` 文件中加入如下代码片段: ```python import pymysql pymysql.install_as_MySQLdb() ``` 这段代码的作用是在不直接调用 `mysqlclient` 的场景下提供替代方案[^4]。 #### 创建和迁移表结构 当完成了以上准备工作之后,就可以利用 Django 提供的 ORM 工具定义模型类以及执行相应的数据库同步操作。例如创建一个新的应用模块并通过该模块内的 models.py 文件描述所需的数据表格形式: ```python from django.db import models class ExampleModel(models.Model): name = models.CharField(max_length=100, null=False) # 名字字段 age = models.IntegerField(default=0) # 年龄字段,默认值设为零 class Meta: db_table = "example_model" ``` 随后运行下面两条指令让这些更改反映至真实的数据库当中去: ```bash python manage.py makemigrations python manage.py migrate ``` 这样就实现了基于 DjangoMySQL 数据库的操作流程介绍。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值