Django基础教程(十五)Django的模型和admin站点之编写模型代码:✍️ 从相亲到结婚:Django模型和Admin站点的完美“联姻”

Django模型与Admin实战

第一章:初见Django模型 - 这不像相亲简历吗?

还记得第一次看到Django模型代码时,我愣住了——这不就是给数据写“相亲简历”吗?

1.1 模型到底是什么鬼?

想象一下,你要开发一个交友网站。每个用户都需要一份“个人档案”,这份档案里要有姓名、年龄、身高、职业、兴趣爱好... 在Django世界里,这个“档案模板”就是模型!

说人话版定义:模型就是你数据的蓝图、模板、或者是... 嗯,相亲简历的标准格式!

# 看不懂这段?别急,后面会让你亲手写!
class UserProfile(models.Model):
    name = models.CharField(max_length=100)  # 名字不能太长吧
    age = models.IntegerField()  # 年龄总要整数吧
    height = models.FloatField()  # 身高可以是小数
    is_active = models.BooleanField(default=True)  # 是否活跃用户

1.2 为什么需要模型?直接写SQL不香吗?

我曾经也这么想,直到经历了这些血泪史:

  • SQL注入攻击:用户输入一个 ' OR '1'='1,你的数据库就裸奔了
  • 手动拼字符串"SELECT * FROM users WHERE name = '" + name + "'" - 又长又容易错
  • 数据库迁移头疼:今天用MySQL,明天换PostgreSQL?祝你好运!

Django模型就像你的专属数据库翻译官,你写Python代码,它自动转换成各种数据库的SQL方言。

第二章:手把手编写你的第一个“相亲简历”

2.1 准备工作:创建Django项目

假设你已经安装好Django(没安装的自行面壁3分钟,然后 pip install django)。

# 创建项目
django-admin startproject dating_site
cd dating_site

# 创建app - 想象成网站的某个功能模块
python manage.py startapp user_profile

2.2 编写模型代码:设计完美的相亲简历

现在来到重头戏!打开 user_profile/models.py,我们要开始设计用户档案了。

from django.db import models

class UserProfile(models.Model):
    # 基本信息 - 就像简历的头部
    nickname = models.CharField(
        max_length=50, 
        unique=True,  # 昵称必须唯一,不能撞车
        verbose_name="昵称"  # 在后台显示中文,更友好
    )
    
    # 年龄字段 - 有些小讲究
    age = models.PositiveIntegerField(
        verbose_name="年龄",
        help_text="请填写真实年龄"  # 给用户的提示
    )
    
    # 性别选择 - 给用户几个选项
    GENDER_CHOICES = [
        ('M', '男'),
        ('F', '女'),
        ('O', '其他'),
    ]
    gender = models.CharField(
        max_length=1,
        choices=GENDER_CHOICES,
        verbose_name="性别"
    )
    
    # 身高 - 单位厘米,可以有小数
    height = models.FloatField(
        verbose_name="身高(cm)",
        null=True,  # 可以为空,不是必填
        blank=True
    )
    
    # 年收入 - 敏感但重要的信息
    INCOME_LEVELS = [
        (1, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

值引力

持续创作,多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值