You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否不开发Web应用,仅通过Django ORM操作MySQL数据库?

当然可以!完全能单独用Django ORM操作MySQL(无需开发Web应用)

别担心,你完全不需要搭建网站或者Web应用,就能用Django ORM来操作MySQL——毕竟ORM本身就是独立于Django Web服务的数据库操作工具,只是大家常把它和Web开发绑定在一起而已。结合你的学习目标(用Python+Django来掌握MySQL),这种方式反而非常适合你。

下面是具体的操作步骤,结合你已经配置好的环境(Ubuntu14.04、Python3.4、MySQL+Django连接正常)来梳理:

步骤1:确认项目配置(你已经完成大半,快速核对)

  • 确保settings.py里的DATABASES配置已经正确指向MySQL,且之前测试连接正常;
  • 准备好一个用来存放模型的Django应用(如果还没创建,看下一步)。

步骤2:创建一个Django应用(用来放数据库模型)

虽然不用Web功能,但Django要求模型必须放在应用目录下。在你的项目根目录运行:

python manage.py startapp mydbapp

然后把mydbapp添加到settings.py的INSTALLED_APPS列表里:

INSTALLED_APPS = [
    # 保留Django自带的应用,比如'django.contrib.admin'等
    'mydbapp',  # 新增这一行
]

步骤3:定义模型(对应MySQL的表结构)

在mydbapp/models.py里编写模型类,这就是你用Python描述MySQL表结构的方式,不用手动写CREATE TABLE语句。举个简单例子:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publish_date = models.DateField()
    price = models.DecimalField(max_digits=5, decimal_places=2)

    def __str__(self):
        return self.title

这个模型会对应MySQL里的mydbapp_book表,每个字段对应表的列——Django会帮你处理字段类型、约束这些细节。

步骤4:生成并应用迁移(创建/修改MySQL表)

这一步就是Django帮你把模型转化为MySQL的表操作,代替手动写SQL的CREATE或ALTER语句:

# 生成迁移文件(记录模型的变化)
python manage.py makemigrations

# 应用迁移到MySQL(实际创建/修改表)
python manage.py migrate

运行完后,你可以登录MySQL客户端查看,对应的表已经自动创建好了。如果想看看迁移背后对应的SQL语句,可以用:

python manage.py sqlmigrate mydbapp 0001

(把0001换成你的迁移文件编号)

步骤5:用Django Shell操作数据库(增删改查全用Python)

现在就可以完全脱离Web,只用Python代码通过ORM操作MySQL了。打开Django shell:

python manage.py shell

在shell里尝试这些操作:

新增数据(对应SQL的INSERT)

from mydbapp.models import Book

# 方式1:创建对象后保存
book1 = Book(title="Python入门", author="张三", publish_date="2023-01-01", price=29.9)
book1.save()

# 方式2:一步创建并保存
book2 = Book.objects.create(title="Django实战", author="李四", publish_date="2023-05-01", price=59.9)

查询数据(对应SQL的SELECT)

# 查询所有书籍
all_books = Book.objects.all()
for book in all_books:
    print(book.title, book.author)

# 按条件查询(比如找作者是张三的书)
zhang_books = Book.objects.filter(author="张三")

# 获取单个对象(唯一匹配)
django_book = Book.objects.get(title="Django实战")

# 查看ORM对应的SQL语句(帮你理解底层逻辑)
print(zhang_books.query)

修改数据(对应SQL的UPDATE)

django_book.price = 54.9
django_book.save()

删除数据(对应SQL的DELETE)

book1.delete()

为什么这适合你的学习目标?

你想通过Python和Django来掌握MySQL,这种方式刚好能帮你建立两者的对应关系:

  • 写模型、做迁移时,你可以对比生成的SQL,理解ORM如何把Python代码转化为MySQL的表操作;
  • 用ORM做查询时,通过query属性查看对应的SQL,能直观感受到Python逻辑和MySQL语句的关联;
  • 全程不用碰Web开发的内容,完全专注于数据库操作和Python代码,完美匹配你“不开发应用,只练MySQL+Django ORM”的需求。

内容的提问来源于stack exchange,提问作者just_learning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:51:57