深度分析Django基础教程之Django数据库查询接口之创建对象
兄弟们,姐妹们,码农朋友们!今天咱们不聊虚的,就来啃一啃Django里那个天天用,但你可能从来没细琢磨过的环节——往数据库里创建新对象(也就是“增删改查”里的“增”)。
你可能会想:“这有啥好讲的?不就一个save()的事儿吗?” 哎,此言差矣!这里面的门道,堪比你去相亲时如何做自我介绍。说好了,幸福一生;说岔了,直接“好人卡”。今天,我就化身你的技术媒人,带你用最幽默、最接地气的方式,把Django创建对象的姿势摸个门儿清。
第一章:舞台搭好——咱们的“相亲资料库”模型
光说不练假把式,咱们先整个活,定义一个模型(Model)。这模型就好比是数据库的一张表结构设计图。
假设我们在做一个非常不正经的“高端相亲平台”,每个用户的资料都至关重要:
# models.py
from django.db import models
class UserProfile(models.Model):
# 基本盘
name = models.CharField(max_length=100, verbose_name="尊姓大名")
age = models.PositiveIntegerField(verbose_name="芳龄")
GENDER_CHOICES = (
('M', '猛男'),
('F', '仙女'),
('X', '神秘人'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, verbose_name="性别")
bio = models.TextField(blank=True, verbose_name="内心独白") # 允许为空,不然很多人编不出来
# 才艺展示(多对多关系,一个人可以有多个才艺,一个才艺可以属于多个人)
talents = models.ManyToManyField('Talent', blank=True, verbose_name="才艺清单")
# 时间戳
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return f"{self.name}-{self.get_gender_display()}-{self.age}"
class Talent(models.Model):
"""才艺模型,比如唱、跳、RAP、篮球"""
name = models.CharField(max_length=50, verbose_name="才艺名称")
def __str__(self):
return self.name
模型搭好了,makemigrations 和 migrate 这两步神之操作咱就不赘述了哈,假设你已经搞定。
第二章:青铜选手——最原始的save()大法
这是最直白,也是最容易理解的方式。它的核心思想是:先new一个对象,再把它save到数据库。<

最低0.47元/天 解锁文章
1737

被折叠的 条评论
为什么被折叠?



