Django模型

该博客围绕Django展开,介绍了models字段类型,包括AutoField、CharField等多种类型及参数说明,还提及逻辑删除和物理删除。此外,阐述了常用字段参数、models基本操作、多模块关联关系和model连表结构,如一对多、多对多、一对一关联,最后附录给出Mysql配置方法。

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


前言


一、models字段类型

1.概述

django根据属性的类型确定以下信息
当前选择的数据库支持字段的类型渲染管理表单时
使用的默认html控件在管理站点最低限度的验证django会为表增加自动增长的主键列,
每个模型只能有一个主键列,
如果使用选项设置某属性为主键列后则django不会再生成默认的主键列

2.属性命名限制

遵循标识符规则
由于django的查询方式,不允许使用连续的下划线
定义属性时,需要字段类型,
字段类型被定义在django.db,models.fields目录下,为了方便使用被导入到django.db.models中

3.使用方式

导入from django.db import models
通过models.Field创建字段类型的对象,赋值给属性

4.逻辑删除和物理删除

对于重要数据都做逻辑删除,不做物理删除,
实现方法是定义is_delete属性,类型为BooleanField默认值为False
is delete = models.BooleanField(default=False)

5.常用字段类型

AutoField
CharField
TextField
IntegerField
DecimalField
DecimalField.max digits
DecimalField.decimal places
  1. AutoField
    一个根据实际ID自动增长的IntegerField,通常不指定,如果不指定,主键字段id将自动添加到模型中
  2. CharField(maxlength=字符长度).
    字符串,默认的表单样式是 Input
  3. TextField
    ·大文本字段,一般超过4009使用,默认的表单控件是Textarea
  4. IntegerField
    ·整数
  5. DecimalField(max digits=None,decimal places=None)
    ·使用python的Decima1实例表示的十进制浮点数
    参数说明
  6. DecimalField.max digits
    ·位数总数
  7. DecimalField.decimal places
    ·小数点后的数字位数
  8. BooleanField
    ·True/False 字段,此字段的默认表单控制是CheckboxInput
  9. FloatField
    ·用Python的float实例来表示的浮点数
  10. DateField([auto now=False,auto now add=False])·使用Python的datetime.date实例表示的日期
    参数说明
  11. DateField.auto now
    自动设置该字段为当前时间,用于"最后一次修改”的时间戳,它总是使用当前日期每次保存对象时,默认为false
  12. DateField.auto now add
    ·当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用创建时的日期,默认为false
    注意:auto_now_add,auto now,and default 这些设置是相互排斥的他们之间的任何组合将会发生错误的结果
  13. TimeField
    ·使用Python的datetime.time实例表示的时间,参数同DateField
  14. DateTimeField
    ·使用Python的datetime.datetime实例表示的日期和时间,参数同DateField
  15. FileField
    .一个上传文件的字段
  16. ImageField
    继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image
    需要安装Pillow:“pip install Pillow”

二、常用字段参数

1.

三、models基本操作

四、多模块关联关系

五、model连表结构

1、一对多关联

2、多对多关联

3、一对一关联


附录

1、配置Mysql

总结

23/09/26 - 未完结

### 创建与开发 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、付费专栏及课程。

余额充值