初识Django(三)

本文详细介绍了使用Django框架搭建博客系统的步骤,包括models.py文件的编写,实现文章、分类和标签的基本CRUD操作,以及数据库迁移等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

承接上文


然后我们得进入models.py中对数据库进行一些操作,使之有一些简单的功能,
这是我的models.py里的代码

from django.db import models
from django.utils.timezone import now

class Tags(models.Model):
    name=models.CharField("标签名",max_length=64)
    creat_time=models.DateTimeField("创建时间",default=now)
    last_mod_time=models.DateTimeField("修改时间",default=now)

    def __str__(self):
        return self.name

    class Meta:
        ordering=['name']
        verbose_name='标签'
        verbose_name_plural='标签列表'
        db_table="tags"

class Category(models.Model):
    name = models.CharField("分类名", max_length=64)
    creat_time = models.DateTimeField("创建时间", default=now)
    last_mod_time = models.DateTimeField("修改时间", default=now)

    def __str__(self):
        return self.name

    class Meta:
        ordering = ['name']
        verbose_name = '分类'
        verbose_name_plural = '分类列表'
        db_table = "category"


class Article(models.Model):
    STATUS_CHOICE=(
        ('P','发表'),
        ('d','草稿')
    )

    title=models.CharField("标题",max_length=100)
    content=models.TextField("正文")
    status=models.CharField("状态",choices=STATUS_CHOICE,default='p',max_length=1)
    views=models.PositiveIntegerField("浏览量",default=0)
    creat_time = models.DateTimeField("创建时间", default=now)
    pub_time=models.DateTimeField("发布时间",default=now)
    last_mod_time = models.DateTimeField("修改时间", default=now)
    category=models.ForeignKey(Category,on_delete=models.CASCADE,blank=False,null=False,verbose_name="分类")
    tags=models.ManyToManyField(Tags,verbose_name="标签",blank=True)


    def __str__(self):
        return self.title

    class Meta:
        ordering:["-pub_tome"]
        verbose_name='文章'
        verbose_name_plural='文章列表'
        db_table="article"
        get_latest_by="create_time"

这里只有简单的增,删,查,改等功能,

在这里插入图片描述
之后
在这里插入图片描述
现在我们可以进行数据映射了,执行命令python mamage.py migrations,你将会看到以下建立好的表
在这里插入图片描述
再然后我们还得执行命令python manage.py migrate,至此我们的一个简单博客已经打建好了,

忘记了还要创建超级管理员,这个很好做,百度一下就好了,,
本来想把做好的博客截图呢,但是前几天还运行的好好的博客,今天那个什么数据库又连接不上了,真是心累。

### Django新手入门与头歌作业示例 对于希望学习Django的新手来说,可以从一些简单的项目入手来熟悉框架的核心概念和基本操作。以下是关于如何通过完成特定的“头歌作业”或其他类似的练习来掌握Django的一些指导。 #### 1. 安装与环境配置 在开始任何Django项目之前,确保已安装Python并设置好虚拟环境。可以按照以下命令创建一个新的Django项目: ```bash pip install django django-admin startproject mysite cd mysite python manage.py runserver ``` 这会启动一个本地服务器,默认地址为`http://127.0.0.1:8000/`[^1]。 #### 2. 创建应用 Django中的每个功能通常被封装在一个独立的应用程序中。可以通过如下命令创建新应用程序: ```bash python manage.py startapp songs ``` 此命令会在当前目录下生成`songs`文件夹及其结构,其中包括模型、视图和其他组件定义的位置[^3]。 #### 3. 数据库设计 (Models) 假设我们要构建一个音乐播放列表管理工具作为“头歌作业”。可以在`songs/models.py`里定义歌曲的数据表单: ```python from django.db import models class Song(models.Model): title = models.CharField(max_length=200) artist = models.CharField(max_length=100) album = models.CharField(max_length=200, blank=True) def __str__(self): return f"{self.title} by {self.artist}" ``` 上述代码片段展示了如何利用Django ORM系统快速建立数据库模式[^2]。 #### 4. 配置URL路由 为了让用户能够访问到我们的资源,在项目的根urls.py添加路径映射至songs app内部的具体逻辑实现处。 ```python from django.urls import path, include urlpatterns = [ ... path('songs/', include('songs.urls')), ] ``` 同时记得也要在`songs/app`下面新建对应的urlconf文件用于进一步细化请求分发规则。 #### 5. 编写视图(Views) 和模板(Templates) 继续完善views.py以响应HTTP GET / POST 请求,并渲染HTML页面展示给前端使用者查看或者提交表单项修改后台存储的信息内容等等。 --- ### 提供更多实践机会推荐几个不错的在线平台链接帮助大家更好地理解实际应用场景下的编码技巧: - [官方文档](https://docs.djangoproject.com/) - [Real Python Tutorials](https://realpython.com/tutorials/django/) - [MDN Web Docs - Learn Django](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值