当前位置: 首页 > wzjs >正文

深圳网站建设 公司元体育热点新闻

深圳网站建设 公司元,体育热点新闻,北京轨道交通建设公司网站,闲鱼上做网站Django模型 定义:模型是 Django 中用于定义数据库结构的 Python 类。每个模型类对应数据库中的一张表,类的属性对应表的字段。 作用:通过模型,Django 可以将 Python 代码与数据库表结构关联起来,开发者无需直接编写 S…

Django模型

  • 定义:模型是 Django 中用于定义数据库结构的 Python 类。每个模型类对应数据库中的一张表,类的属性对应表的字段。

  • 作用:通过模型,Django 可以将 Python 代码与数据库表结构关联起来,开发者无需直接编写 SQL 语句即可操作数据库。

常用字段

字段类型说明示例
CharField用于存储较短的字符串,必须指定 max_lengthname = models.CharField(max_length=100)
TextField用于存储大段文本,不需要指定最大长度。description = models.TextField()
IntegerField用于存储整数。age = models.IntegerField()
BooleanField用于存储布尔值(True/False)。is_published = models.BooleanField(default=False)
DateField用于存储日期(年月日)。birth_date = models.DateField()
DateTimeField用于存储日期和时间。created_at = models.DateTimeField(auto_now_add=True)
EmailField用于存储电子邮件地址,会自动验证格式。email = models.EmailField(max_length=254)
URLField用于存储 URL,会自动验证格式。website = models.URLField(max_length=200)
DecimalField用于存储固定精度的十进制数,需指定 max_digits 和 decimal_placesprice = models.DecimalField(max_digits=10, decimal_places=2)
FloatField用于存储浮点数。rating = models.FloatField()
ForeignKey用于定义多对一关系,指向另一个模型。author = models.ForeignKey(Author, on_delete=models.CASCADE)
OneToOneField用于定义一对一关系。profile = models.OneToOneField(Profile, on_delete=models.CASCADE)
ManyToManyField用于定义多对多关系。tags = models.ManyToManyField(Tag)
FileField用于上传文件。file = models.FileField(upload_to='uploads/')
ImageField用于上传图片,继承自 FileField,会自动验证是否为图片。photo = models.ImageField(upload_to='photos/')
UUIDField用于存储 UUID(通用唯一标识符)。id = models.UUIDField(primary_key=True, default=uuid.uuid4)
AutoField自动递增的整数字段,通常用于主键。id = models.AutoField(primary_key=True)
BigAutoField类似 AutoField,但支持更大的范围(64 位整数)。id = models.BigAutoField(primary_key=True)
SlugField用于存储短标签(URL 友好的字符串),通常用于 URL。slug = models.SlugField(unique=True)
BinaryField用于存储二进制数据。data = models.BinaryField()
DurationField用于存储时间间隔(如天数、小时数等)。duration = models.DurationField()
GenericIPAddressField用于存储 IPv4 或 IPv6 地址。ip_address = models.GenericIPAddressField()
JSONField用于存储 JSON 数据。metadata = models.JSONField()

常用参数

参数说明
max_length指定字段的最大长度(如 CharField)。
null如果为 True,数据库中将允许存储 NULL 值。
blank如果为 True,字段在表单中可以为空。
default指定字段的默认值。
unique如果为 True,字段值必须在表中唯一。
primary_key如果为 True,该字段将作为模型的主键。
choices提供一个可选的选项列表(如 GENDER_CHOICES = [('M', 'Male'), ('F', 'Female')])。
auto_now每次保存对象时自动设置为当前时间(常用于 DateTimeField)。
auto_now_add对象第一次创建时自动设置为当前时间(常用于 DateTimeField)。
upload_to指定文件上传的目录(用于 FileField 和 ImageField)。
on_delete指定外键关联的对象被删除时的行为(如 CASCADESET_NULL 等)。

注意:id 字段会自动生成,无需显式定义(Django 默认会添加一个自增的 id 主键,如果不是这种情况需要手动添加字段)

from django.db import modelsclass User(models.Model):username = models.CharField(max_length=100, unique=True)password = models.CharField(max_length=100)email = models.EmailField(unique=True)first_name = models.CharField(max_length=100)last_name = models.CharField(max_length=100)def __str__(self):return self.username

举个例子models中添加一个商品 类中有id(自动生成)、name、code、price、crate_time、update_time大家自己创建下 按照上面的命令

class Product(models.Model):# id 字段会自动生成,无需显式定义(Django 默认会添加一个自增的 id 主键)name = models.CharField(max_length=100, verbose_name="商品名称")code = models.CharField(max_length=50, unique=True, verbose_name="商品编码")price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="商品价格")create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")

Migrations

  • 定义:迁移是 Django 用来管理数据库模式变更的机制。每次修改模型后,Django 会生成一个迁移文件,记录模型的变化。

  • 作用:迁移文件允许你将数据库模式从一种状态更新到另一种状态,同时保留现有数据。

  • 生成迁移文件:使用 python manage.py makemigrations 命令,Django 会检测模型的变更,并生成相应的迁移文件。

    • 例如,修改user模型后,运行 makemigrations 会生成一个迁移文件,记录这些变更。

product例子生成表名:myapp_product

makemigrations 和 migrate 的关系

  • makemigrations:生成迁移文件,记录模型的变更。

  • migrate:应用迁移文件,将变更同步到数据库中。

  • 流程:

    1. 修改模型(如添加字段、修改字段类型等)。

    2. 运行 python manage.py makemigrations,生成迁移文件。(注意如果说有报错需要查看自己的settings.py中是否包含INSTALLED_APPS是否包含了myapp)

    3. 运行 python manage.py migrate,将迁移应用到数据库(可以查看数据库中建立的表,生成的表是app名称_对象名)。

http://www.dtcms.com/wzjs/58321.html

相关文章:

  • 沧州哪里做网站小吃培训去哪里学最好
  • 江西网站建设哪家专业网站seo优化教程
  • 楼盘网站建设方案seo网站优化公司
  • 在天津做网站的公司全国人大常委会
  • 免费浪漫网页制作网站合肥网站排名推广
  • 世界疫情最新数据统计排名seo优化师培训
  • 大连网站开发师b站推广入口
  • 信息部网站建设工作计划学网络运营需要多少钱
  • java做网站后端近一周的新闻大事热点
  • 网站开发报告书河北关键词seo排名
  • 网站前置审批怎么做发稿
  • 网站怎么做直播大连头条热点新闻
  • 晋江市规划局建设网站国内新闻大事20条
  • 网站开发与维护视频教程it培训机构出来能找到工作吗
  • 个人网站做电商福州百度快照优化
  • 做图标的网站seo教程之关键词是什么
  • 建立网站有哪些步骤百度如何注册公司网站
  • 东莞网站建设服务网络营销软件下载
  • 网站首页制作公司seo入门课程
  • 关于网站建设论文的结束语西安seo网站优化
  • 湘潭网站建设 技精磐石网络企业营销型网站策划
  • 东莞中英文网站建设seo的目的是什么
  • 中国工商注册营业执照的官网seo兼职
  • php企业网站程序网址如何被快速收录
  • 黄冈市建设银行网站武汉大学人民医院
  • 备案网站大全百度推广登陆
  • 张家港网站定制澳门seo关键词排名
  • 广州海珠区天气预报兰州seo优化公司
  • 制作网制作网站建设的公司网站关键词排名批量查询
  • 珠海网站开发排名百度上海推广优化公司