第一章:初见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,
Django模型与Admin实战

最低0.47元/天 解锁文章

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



