快速入门Python Django模型实例!("Python Django模型快速入门实例教程!")

原创
ithorizon 6个月前 (10-20) 阅读数 13 #后端开发

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 应用程序。在实际开发中,还需要学习更多高级特性,如模型继承、自定义模型字段、模型验证等。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门