django模型

1.先来看一个简单的模型,了解下基本模型得组成

from django.db import models
class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

说明:
我们可以看到我们定义了一个Person类,继承models.Model类,这个类对应一个表,表名默认为appname_person 也就是app的名称加上下划线在加上类名的小写。当然表名也可以自定义,后面说到。
两个属性,代表两个字段。两个字段类型为CharField也就是字符串类型。且有些字段选项来描述字段。比如这里的max_length指明字段的大小。每个类默认还会自动创建一个id的字段,这个字段不为空,且是主键。当然自己也可以自定义主键,只要字段选项primary_key=True即可。

2.常用字段

  1. CharField()
    字符字段
    选项:
    (1)max_length = number or None 定义字符长度 (必填选项)
    (2)unique = True 默认False 定义字段唯一性
    (3)choice = xxx_CHOICES(一个元祖) 选项 是一个选择框而不是标准文本字段
    2.TextFiled()
    文本字段
    选项:max_length = number or None (必填选项)
    如不是必填项,可设置blank = True和default = ‘’

3.DateField() and DateTimeField()
日期与时间字段

4.EmailField()
邮件字段

5.IntegerField()
整数字段
6.FileField()
文件字段
选项:
upload_to :上传路径
7.ImageField
图片字段

8.ForeignKey(to, on_delete, **options) - 单对多关系
to必需指向其他模型,比如 Book or ‘self’ .
必需指定on_delete options(删除选项): i.e, “on_delete = models.CASCADE” or “on_delete = models.SET_NULL” .
可以设置"default = xxx" or “null = True” .
如果有必要,可以设置 "limit_choices_to = ",如下面例子。
staff_member = models.ForeignKey( User, on_delete=models.CASCADE, limit_choices_to={‘is_staff’: True}, )
可以设置 “related_name = xxx” 便于反向查询

9.ManyToManyField(to, **options) - 多对多关系
to 必需指向其他模型,比如 User or ‘self’ .
设置 "symmetrical = False " if 多对多关系不是对称的
设置 "through = ‘intermediary model’ " 如果需要建立中间模型来搜集更多信息
可以设置 “related_name = xxx” 便于反向查询。

3.meta选项
模型元数据是“任何不是字段的东西”,例如排序选项(ordering),数据库表名(db_table)或人类可读的单数和复数名称(verbose_name和 verbose_name_plural)。不需要,添加到模型是完全可选的。class Meta
可参考:https://docs.djangoproject.com/zh-hans/2.0/ref/models/options/

更多模型知识可可参考官方文档:https://docs.djangoproject.com/zh-hans/2.0/topics/db/queries/

### 创建与开发 Django 模型 #### 定义模型类 在 Django 中,模型用于定义应用的数据结构和行为。每个模型都是一个 Python 类,继承自 `django.db.models.Model`[^3]。 ```python from django.db import models class Book(models.Model): title = models.CharField(max_length=200) author = models.CharField(max_length=100) published_date = models.DateField() def __str__(self): return self.title ``` 此代码片段展示了如何创建名为 `Book` 的简单模型,其中包含三个字段:书名 (`title`)、作者(`author`) 和出版日期 (`published_date`)。 #### 执行迁移操作 编写好模型之后,需执行迁移命令使这些更改生效于数据库中。这一步骤会将 Python 代码转换为 SQL 并实际创建相应的表格[^5]。 ```bash python manage.py makemigrations python manage.py migrate ``` 上述两条指令分别负责生成新的迁移文件以及应用这些变更至目标数据库内。 #### 注册管理界面 为了让新建立的模型能够在 Django 管理后台显示出来,还需要对其进行注册: ```python # admin.py 文件内容如下所示: from django.contrib import admin from .models import Book admin.site.register(Book) ``` 这样管理员就可以通过 Web 接口轻松管理和维护书籍记录了。 #### 测试模型功能 最后可以通过 Django shell 来测试刚刚创建好的模型是否正常工作: ```bash python manage.py shell ``` 进入交互环境后尝试添加一条数据验证其可用性: ```python >>> from myapp.models import Book >>> new_book = Book(title="Django入门", author="张三", published_date='2023-09-08') >>> new_book.save() ``` 以上就是完整的 Django 模型创建流程介绍[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值