django中创建一个Model

本文介绍如何使用Django创建一个书籍应用,包括应用创建、模型定义及数据库迁移等步骤,并演示了如何通过Python进行数据的增删改查操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

step1

创建一个应用(python manage.py startapp books) 这里创建一个叫books应用
,然后在settings中的INSTALLED_APPS参数中加上应用,如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'books',
]

step 2

创建一个model类,一个类对应数据库中的一张表如下
打book>models.py编写下面代码:

from django.db import models

# Create your models here.
class Publisher(models.Model):
    name = models.CharField(max_length= 30)
    address = models.CharField(max_length= 50)
    city = models.CharField(max_length=50)
    state_province = models.CharField(max_length= 100)
    country = models.CharField(max_length= 100)
    websit = models.URLField()

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()

然后执行:(django 1.9 之前执行python manage.py syncdb)
python manage.py migrate
python manage.py makemigrations book
这样数据库中就会生成两张表
books_author |
books_publisher

step 3 model增删改查:

1插入数据
from books.models import Author
a1 =Author(first_name = 'yin',last_name = 'xiong', email = '352322399')
a1.save()

执行完成,可以看到数据库多了一条数据
| 1 | yin | xiong | 352322399 |

#

### Django创建 Model 的方法及示例 在 Django 中,`Model` 是应用程序的核心部分之一,用于定义数据库结构并提供数据访问接口。通过继承 `models.Model` 类,可以轻松地定义一个模型。 #### 1. 定义 Model一个 Django 应用程序中,所有的模型都位于应用目录下的 `models.py` 文件中。下面是一个典型的例子: ```python from django.db import models class Book(models.Model): title = models.CharField(max_length=200) # 字符字段,最大长度为200 author = models.CharField(max_length=100) # 作者名称 publication_date = models.DateField() # 出版日期 price = models.DecimalField(max_digits=5, decimal_places=2) # 小数字段,表示价格 def __str__(self): return f"{self.title} by {self.author}" # 返回字符串形式的对象描述[^1] ``` 此代码片段展示了如何定义一个名为 `Book` 的模型,其中包含了书籍的标题、作者、出版日期和价格等属性。 #### 2. 数据库迁移 当定义好一个新的模型或者修改现有模型之后,需要执行以下命令来进行数据库同步: - 首先生成迁移文件: ```bash python manage.py makemigrations ``` - 接着应用这些迁移到数据库: ```bash python manage.py migrate ``` 完成以上两步后,Django会自动更新数据库模式以匹配新的模型定义[^2]。 #### 3. 使用内置信号扩展功能 如果希望在保存或删除对象时触发某些特定行为,则可以通过连接信号实现这一目标。例如,在每次用户实例被保存时调用额外的功能函数: ```python from django.db.models.signals import post_save from django.dispatch import receiver @receiver(post_save, sender=Book) def book_saved_handler(sender, instance, created, **kwargs): if created: print(f"A new book '{instance}' has been added.") # 当新书本创建时打印消息[^4] ``` 这段脚本设置了每当有新的 `Book` 对象被创建时都会输出一条通知信息。 #### 4. 转化 Model 到字典 有时可能需要将查询集中的每一个条目转换成普通的Python字典以便于序列化或其他用途。这里展示了一个简单的方法来做这件事: ```python book_instance = Book.objects.get(id=1) data_dict = { 'title': book_instance.title, 'author': book_instance.author, 'publication_date': str(book_instance.publication_date), 'price': float(book_instance.price) } print(data_dict) # 输出字典型的数据[^3] ``` 这说明了怎样手动构建一个代表单个记录的字典;当然也可以利用更高级的技术如 serializers 来批量处理多个对象。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crystalnsd

万水千山总是情,支持一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值