快速入门Python Django模型实例!("Python Django模型快速入门实例教程!")
原创
一、Django简介
Django 是一个高级的 Python Web 框架,它鼓励敏捷开发和干净、实用的设计。Django 的设计哲学是“不要重复造轮子”,它提供了大量内置的功能,使开发者可以敏捷地构建高质量、可维护的 Web 应用程序。
二、Django模型概述
在 Django 中,模型(Model)是数据库表中数据的抽象即。模型定义了数据结构以及数据的行为。Django 使用模型-视图-控制器(MVC)架构模式,其中模型负责数据库交互。
三、创建Django项目与应用
首先,确保你已经安装了 Django。如果没有安装,可以通过 pip 命令安装:
pip install django
然后,创建一个新的 Django 项目:
django-admin startproject myproject
进入项目目录,创建一个应用:
cd myproject
python manage.py startapp myapp
四、定义模型
在 myapp 目录下,打开 models.py 文件,定义一个易懂的模型。以下是一个名为“Book”的模型示例:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
publication_date = models.DateField()
isbn = models.CharField(max_length=13)
price = models.DecimalField(max_digits=6, decimal_places=2)
def __str__(self):
return self.title
这里定义了一个名为 Book 的模型,它包含五个字段:title(书名)、author(作者)、publication_date(出版日期)、isbn(国际标准书号)和 price(价格)。
五、迁移模型
定义模型后,需要将模型迁移到数据库中。首先,生成迁移脚本:
python manage.py makemigrations myapp
然后,执行迁移脚本,将模型实际迁移到数据库中:
python manage.py migrate myapp
六、模型操作
在 Django 中,可以使用模型的 API 进行数据的增删改查(CRUD)操作。
6.1 创建数据
创建一个 Book 实例并保存到数据库中:
from myapp.models import Book
book = Book(title='Python编程敏捷上手', author='张三', publication_date='2022-01-01', isbn='978-3-16-148410-0', price=59.99)
book.save()
6.2 查询数据
查询所有书籍:
books = Book.objects.all()
for book in books:
print(book.title, book.author, book.publication_date, book.isbn, book.price)
查询特定作者的书籍:
books = Book.objects.filter(author='张三')
for book in books:
print(book.title, book.author, book.publication_date, book.isbn, book.price)
6.3 更新数据
更新特定书籍的价格:
book = Book.objects.get(title='Python编程敏捷上手')
book.price = 69.99
book.save()
6.4 删除数据
删除特定书籍:
book = Book.objects.get(title='Python编程敏捷上手')
book.delete()
七、模型关系
在现实世界中,模型之间通常存在相关性。Django 提供了三种模型关系:一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。
7.1 一对一关系
假设我们有一个 Author 模型,它和 Book 模型存在一对一关系。可以这样定义:
class Author(models.Model):
name = models.CharField(max_length=100)
book = models.OneToOneField(Book, on_delete=models.CASCADE)
def __str__(self):
return self.name
这里,Author 模型有一个名为 book 的外键字段,指向 Book 模型。on_delete=models.CASCADE 即当相关性的 Book 对象被删除时,对应的 Author 对象也会被删除。
7.2 一对多关系
假设我们有一个 Publisher 模型,它和 Book 模型存在一对多关系。可以这样定义:
class Publisher(models.Model):
name = models.CharField(max_length=300)
class Book(models.Model):
title = models.CharField(max_length=500)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
这里,Book 模型有一个名为 publisher 的外键字段,指向 Publisher 模型。on_delete=models.CASCADE 即当相关性的 Publisher 对象被删除时,所有相关性的 Book 对象也会被删除。
7.3 多对多关系
在 Book 模型中,我们已经使用了多对多关系。可以这样定义:
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
这里,Book 模型有一个名为 authors 的多对多字段,指向 Author 模型。这意味着一个 Book 对象可以相关性多个 Author 对象,反之亦然。
八、总结
本文介绍了 Django 模型的基本概念和操作,包括创建模型、迁移模型、模型操作以及模型关系。通过这些基础知识,你可以起始构建具有错综数据结构的 Django 应用程序。在实际开发中,还需要学习更多高级特性,如模型继承、自定义模型字段、模型验证等。