Django基础教程(四十二)Django数据库查询接口之创建对象:Django数据库操作骚攻略:花式存数据,从‘Hello World’到‘老司机’保姆级指南

深度分析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

模型搭好了,makemigrationsmigrate 这两步神之操作咱就不赘述了哈,假设你已经搞定。

第二章:青铜选手——最原始的save()大法

这是最直白,也是最容易理解的方式。它的核心思想是:先new一个对象,再把它save到数据库。<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

值引力

持续创作,多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值