Django项目实战----模型篇

Django项目实战----模型篇

Django 内置了数十种字段类型;如果 Django 内置类型不能满足你的需求,你可以很轻松地编写自定义的字段类型;

字段类型

AutoField

根据可用的 ID 自动递增。通常设置主键的时候应用它参数必须设置primary_key=True
范围和IntegerField一样

id = models.AutoField(primary_key=True)

不过主键一般不用自己设置,django会自动帮你设置一个自增的主键

BigAutoField

一个64位整数,范围 1 到 9223372036854775807
类似于BigIntegerField的无符号位

BigIntegerField

BigIntegerField(max_length=None,**options)

一个64位整数,范围 -9223372036854775808 到 9223372036854775807

BinaryField

存储二进制字段,可以用来存储文件,但是在数据库中存储文件是非常不理智的行为

BooleanField

bool值的字段
用来存放 true和false

CharField

CharField(max_length=None, **options)

存放字符串。必须指定最长的长度
如果文本的长度太长可以考虑 TextField

DateField

DateField(auto_now=False, auto_now_add=False, **options)

用来存放时间的字段

  • 参数auto_now=True 每次保存对象时自动将该字段设置成当前时间
  • 参数auto_now_add=True 只在第一次创建对象时自动将该字段设置为创建的时间,不可以被修改

这两个参数互斥,不能同时为True

    first_time = models.DateField(auto_now_add=True) 
    update_tim = models.DateField(auto_now=True)

DecimalField

DecimalField(max_digits=None, decimal_places=None, **options)

一个固定精度的十进制数

  • max_digits 数字中允许的最大位数 该值需大于decimal_places
  • decimal_places 小数位数
    举例
    要存储最高为 999.99 的数字,精度为小数点后 2 位
number = models.DecimalField(max_digits=5, decimal_places=2)

DurationField

用于存储时间段的字段 (不常用)

EmailField(max_length=254, **options)

邮箱,
使用 EmailValidator 来检查该值是否为有效的电子邮件地址。

FileField

 FileField(upload_to='', storage=None, max_length=100, **options)

文件上传字段
这个文件字段的需要注意的太多了,回来单独出一篇文章

FilePathField

FilePathField(path='', match=None, recursive=False, allow_files=True, allow_folders=False, max_length=100, **options)

存储文件目录

FloatField

表示的浮点数
注意FloatField 和 DecimalField 的区别,一个不能精确表示小数,一个能能精确表示小数

GenericIPAddressField

 GenericIPAddressField(protocol='both', unpack_ipv4=False, **options)

IPv4 或 IPv6 地址,字符串格式

ImageField

ImageField(upload_to=None, height_field=None, width_field=None, max_length=100, **options)

保存图片,存储的是文件路径

IntegerField

整数 范围-2147483648 到 2147483647

JSONField

JSONField(encoder=None, decoder=None, **options)

存储 JSON 编码数据的字段

TextField

大的文本字段,一般用来存放文章内容

TimeField

存放时间

UUIDField

存储通用唯一标识符的字段,使用 Python 的 UUID 类

关系字段

ForeignKey

 ForeignKey(to, on_delete, **options)

多对一的关系

  • to 指定关联的类
  • on_delete 在删除关联数据时采用的方式,根据不同的需求进行选择
#一个A类实例对象关联多个B类实例对象
class A(model.Model):
....
class B(model.Model):
    属性 = models.ForeignKey(to=A,on_delete=models.CASCADE ...)
    # CASCADE 级联删除

ManyToManyField

ManyToManyField(to, **options)

多对多 需要一个位置参数:模型相关的类

  • to 指定关联的类
class Author(models.Model):
    ...
class Book(models.Model):
    ...
    authors = models.ManyToManyField(Author)

OneToOneField

OneToOneField(to, on_delete, parent_link=False, **options)

一对一的关系

  • to 指定关联的类
class A(model.Model): 
...
class B(model.Model):
    属性 = models.OneToOneField(A)
Python-Django-Vue项目实战是一种常见的全栈发模式,结合了PythonDjango框架和Vue.js前端框架。下面是一个简单的介绍: Python-Django是一个强大的Web开发框架,它使用Python语言编写,提供了一系列的工具和库来简化Web应用程序的开发过程。Django具有高度的可扩展性和灵活性,可以帮助开发者快速构建功能丰富的Web应用。 Vue.js是一个流行的JavaScript前端框架,它专注于构建用户界面。Vue.js具有简单易学的语法和强大的功能,可以帮助开发者构建交互性强、响应迅速的前端应用。 在Python-Django-Vue项目实战中,通常会将Django作为后端框架来处理数据逻辑和业务逻辑,而Vue.js则负责前端页面的展示和用户交互。通过这种方式,可以实现前后端分离,提高开发效率和代码可维护性。 具体的项目实战可以包括以下内容: 1. 构建Django后端:使用Django框架创建后端应用程序,包括定义数据模型、编写视图函数、配置URL路由等。 2. 开发Vue前端:使用Vue.js框架创建前端应用程序,包括设计页面布局、编写组件、处理用户交互等。 3. 数据交互:通过RESTful API或GraphQL等方式,实现前后端数据的交互和通信。 4. 用户认证和权限管理:实现用户注册、登录、权限验证等功能,确保系统的安全性。 5. 数据库操作:使用Django的ORM(对象关系映射)来进行数据库操作,包括增删改查等。 6. 页面美化和响应式设计:使用CSS和Vue.js的样式绑定功能,实现页面的美化和响应式设计。 7. 部署和发布:将项目部署到服务器上,并进行性能优化和安全加固。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱喝水的小鲨鱼

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值