Django基础教程(八十九)Django实现文章组件之文章分类管理页面:码农自救指南:Django搞个分类管理,别再手动SQL“暴力施工”了!

兄弟们,姐妹们,各位在代码海洋里“游泳”(偶尔溺水)的同行们!今天,咱们不整那些虚头巴脑的概念,就来聊一个实战中100%会遇到的需求——文章分类管理

你想想,一个博客、一个资讯站,甚至一个商品系统,能离得开分类吗?肯定不能啊!难道你想让所有文章都堆在一起,让用户像在大海里捞针一样找内容?那用户体验得多“复古”啊。

以前,你可能想着直接怼SQL:INSERT INTO category (name) VALUES ('Django干货')。停!打住!这都什么年代了,我们可是尊贵的Django开发者,手里握着ORM这把“瑞士军刀”,怎么能干出这种“手动搬砖”的活儿?

今天,我就带你用Django,像搭乐高一样,优雅地实现一个文章分类管理页面。不仅有自带“上帝视角”的Admin后台,更有我们亲手定制、颜值在线的前台管理页面。系好安全带,发车了!

第一幕:蓝图绘制——模型(Model)是灵魂

在Django里,模型就是你数据库的蓝图。你想存什么数据,首先得在这里定义好。对于文章分类,我们需要啥?简单到令人发指:

  1. 分类名称:比如“Python基础”、“Django进阶”。
  2. 分类描述:简单介绍一下这个分类是干嘛的(可选,但推荐有)。
  3. 创建时间:记录一下这个分类是啥时候诞生的。

来,看代码,我们在 models.py 里写下我们的“宪法”:

from django.db import models

class Category(models.Model):
    # 分类名称,CharField是字符字段,max_length是最大长度,别忘了写
    name = models.CharField(max_length=100, unique=True, verbose_name='分类名称')
    # 分类描述,TextField可以存更长的文本,blank=True表示可选
    description = models.TextField(blank=True, verbose_name='分类描述')
    # 创建时间,auto_now_add=True表示对象第一次创建时自动设置为当前时间
    created_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')

    class Meta:
        # 这会在Admin后台和查询时,显示一个更友好的名字
        verbose_name = '文章分类'
        verbose_name_plural = verbose_name  # 复数形式(英文里用),我们直接让它等于单数

    def __str__(self):
        # 这个方法非常重要!它决定了在Admin后台或其他地方,这个对象显示为什么
        # 比如,没有这个方法,你看到的可能就是一堆 “Category object (1)”
        return self.name

深度理解一下

  • unique=True:保证了分类名不能重复,你总不能有两个“Django干货”吧?
  • verbose_name:这是给人类看的名字,在Admin后台会非常直观。
  • def __str__(self):这是模型的“名片”,务必写好!它能让你的调试和管理体验提升一个档次。

写完模型,例行公事,进行数据库迁移(这就是Django的魔法,你不用写一句SQL):

python manage.py makemigrations
python manage.py migrate

看到绿色的 OK,恭喜你,数据库里的“分类表”已经悄然建成了!

第二幕:上帝模式——Admin后台的秒级体验

Django最被吹爆的功能之一就是它的Admin后台。你几乎不用写前端代码,就能得到一个功能强大的管理界面。对于我们刚建的 Category 模型,只需要简单“注册”一下。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

值引力

持续创作,多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值