Django网站开发 简单框架

一、安装Django

1.1 使用pip安装Django:pip install django
1.2 验证Django安装:django-admin --version

二、创建项目

2.1 使用django-admin创建项目:django-admin startproject myproject(将myproject替换为你的项目名称)
在这里插入图片描述
2.2 进入项目目录:cd myproject

三、创建应用

3.1 使用python manage.py创建应用:python manage.py startapp myapp(将myapp替换为你的应用名称)
在这里插入图片描述

四、配置应用

4.1 在项目的settings.py文件中,向INSTALLED_APPS列表添加新创建的应用(如:‘myapp’)
在这里插入图片描述

五、创建模型(数据库表结构)

创建模型(Model)是在使用 Django 开发网站时的一个重要步骤。模型是 Python 类,它们用于定义和描述你的数据结构,它们将映射到数据库中的表结构。在 Django 中,模型是用于处理数据的主要组件,可以帮助你更方便地查询、更新和管理数据。创建模型的主要原因是:

结构化数据:模型可以帮助你以一种清晰、易于理解的方式组织数据。
代码可维护性:模型使得数据的逻辑和表现层分离,使代码更具可维护性。
抽象层:Django 的模型系统提供了一层抽象,让你可以在不了解数据库具体实现细节的情况下进行数据操作。
自动化:Django 可以根据你定义的模型自动生成数据库表结构,简化了开发过程。

(一)简单模型

具体操作如下:
在 models.py 文件中,首先导入所需模块:

from django.db import models

定义你的模型类,它需要继承自 models.Model 类。例如,创建一个名为 Blog 的模型:

class Blog(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

上述代码定义了一个简单的博客模型,包含标题(title)、内容(content)和发布日期(pub_date)三个字段。
运行以下命令生成数据库迁移文件:

python manage.py makemigrations <app_name>

应用迁移,以创建数据库表结构:

python manage.py migrate

至此,你已经成功创建了一个基本的模型并将其映射到数据库表结构。接下来,你可以根据需求继续开发网站的其他部分。

(二)博客模型

一个基本的博客网站通常包含文章(Posts)和评论(Comments)。以下是一些建议的模型设计:

1、创建 Post 模型

在 portfolio 应用的 models.py 文件中创建一个名为 Post 的模型,其中包含文章标题、内容、创建时间和修改时间等字段。

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

# 创建一个名为Post的模型类
class Post(models.Model):
    # 定义CharField,最大长度为200,表示文章的标题
    title = models.CharField(max_length=200)
    # 定义TextField,表示文章的正文内容
    content = models.TextField()
    # 定义DateTimeField,设置默认值为当前时间
    pub_date = models.DateTimeField(default=timezone.now)
    # 定义DateTimeField,自动设置为最后一次保存对象的时间
    updated_date = models.DateTimeField(auto_now=True)

    # 定义一个特殊方法,返回对象的字符串表示形式,本例中返回文章的标题
    def __str__(self):
        return self.title

2、创建 Comment 模型

在同一文件中创建一个名为 Comment 的模型,其中包含评论的作者、内容、评论时间和关联的文章等字段。

from django.db import models
from django.utils import timezone
class Comment(models.Model):
    # 定义外键,关联到Post模型,on_delete参数表示当关联的Post对象被删除时,也同时删除该评论对象。related_name='comments'表示为Post模型和Comment模型之间的关系设置了一个反向关系的名称,该名称为comments。这样,在查询Post对象时可以通过comments属性访问它的所有评论。例如,如果要获取一个名为post的Post对象的所有评论,可以使用post.comments.all()。
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
    # 定义CharField,表示评论的作者,最大长度为100
    author = models.CharField(max_length=100)
    # 定义TextField,表示评论的内容
    content = models.TextField()
    # 定义DateTimeField,表示评论的发布时间,默认为当前时间
    pub_date = models.DateTimeField(default=timezone.now)

	# 定义一个特殊方法,返回对象的字符串表示形式,本例中返回评论作者和评论内容的前50个字符
    def __str__(self):
        return f"{
     self.author} - {
     self.content[:50]}"

这里我们使用了 get_object_or_404 函数来获取指定 ID 的文章,如果找不到文章,则返回 404 错误。同时,我们获取了文章的所有评论并按发布时间升序排列。

这里我们使用了 ForeignKey 来表示一篇文章与多个评论之间的关系。related_name 参数可以方便地通过文章获取其所有关联的评论。

迁移数据库:由于我们修改了模型,需要生成迁移文件并应用迁移,以在数据库中创建相应的表结构。运行以下命令:

python manage.py makemigrations portfolio
python manage.py migrate

现在我们已经创建了基本的模型结构,接下来我们将继续完善视图、模板和 URL,以便在网站上显示文章和评论。

3、评论表单

在 portfolio/forms.py 文件中(如果不存在,请创建该文件),创建一个名为 CommentForm 的表单类,用于处理评论数据:

from django import forms
from .models import Comment

class CommentForm(forms.ModelForm):
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值