完美主义者的最终框架
发布日期:2021-05-09 15:23:18 浏览次数:24 分类:精选文章

本文共 2177 字,大约阅读时间需要 7 分钟。

Django模型与数据库关系详解

Django模型是与数据库相关的核心模块,其主要职责是定义数据结构并与数据库进行交互。在Django框架中,models.py文件是定义数据库表结构的主要场所。Django支持多种数据库类型(如sqlite3、MySQL、PostgreSQL等),只需通过settings.py进行配置即可,无需修改models.py中的代码。

Model的作用

与传统三层架构或mvc架构相比,Django的Model相当于数据处理层,专注于数据的管理与操作。Django采用codefirst开发模式,即开发者只需编写Model类代码,框架自动接查数据库,不需手动操作数据库,提升开发效率。

创建工程与应用

创建工程

django-admin startproject douban

创建应用

python manage.py startapp book

添加新应用至settings.pyINSTALLED_APPS

定义Model

book/models.py中,定义具体数据库表结构。每个class对应一张表,自动生成id主键。

class Publisher(models.Model):
name = models.CharField(max_length=100)
website = models.URLField()
class Meta:
db_table = 'books_publisher'
class Author(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
email = models.EmailField()
class Meta:
db_table = 'books_author'
class Book(models.Model):
title = models.CharField(max_length=200)
publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
publish_date = models.DateTimeField()
class Meta:
db_table = 'books_book'

数据库同步

生成迁移

python manage.py makemigrations

应用迁移

python manage.py migrate

完成后,数据库会自动生成所需表结构,可通过Navicat查看数据库结构。

数据库操作

插入新对象

# 方法一:直接创建对象并保存
from book.models import Author
p1 = Author(name='张三', age=30, email='zhangsan@example.com')
p1.save()
# 方法二:逐步设置属性并保存
p2 = Author()
p2.name = '李四'
p2.age = 25
p2.email = 'lisi@example.com'
p2.save()
# 方法三:通过 ORM 创建对象
p3 = Author.objects.create(name='王五', age=35, email='wanglei@example.com')
# 方法四:或创方法
p4 = Author.objects.get_or_create(name='李六', age=20)

查询操作

# 查询所有作者
all_authors = Author.objects.all()
# 查询符合条件的作者
specific_author = Author.objects.filter(name='张三').first()
#чит greatness
#_raw_query = Author.objects.raw('SELECT * FROM books_author WHERE name = "张三"')

更新操作

# 通过对象直接修改
author = Author.objects.get(id=1)
author.age = 31
print(author.age)
author.save()
# 或通过values修改并保存
data = {'name': 'olis', 'email': 'lisi@example.com'}
author.update(**data)

删除操作

author = Author.objects.get(id=1)
author.delete()

注意事项

  • 不要手动修改数据库内容,Django会通过迁移工具记录所有更改。
  • 使用makemigrationsmigrate命令管理数据库变更。
  • 建议使用shell环境进行数据库操作,避免 KeyboardInterrupt错误。

通过以上步骤,开发者可以轻松利用Django ORM与数据库进行交互,专注于业务逻辑的实现。

上一篇:HDFS存入文件的整个流程
下一篇:MySQL数据库增删改查等常用命令介绍

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月18日 13时17分30秒