Django学习教程(十九)Django博客项目总结

Django学习教程(十九)Django博客项目总结

前言

  前面我们通过一系列文章,学习了Django框架的基本使用,并且完成了一个简单的博客项目。这一篇我们来对前面的内容做一个总结。

  通过这个博客项目,我们学习了Django项目创建、应用创建、模型层、数据迁移、Admin后台、模板系统、文章详情、分页以及最近文章列表等内容。

1.项目创建

创建Django项目使用命令:

复制代码
django-admin startproject myblog

创建应用使用命令:

复制代码
python manage.py startapp blog

创建应用后,需要在settings.py中的INSTALLED_APPS中注册应用。

2.路由和视图

urls.py用来配置路由,views.py用来编写视图函数。

简单示例:

复制代码
path('', views.article_list)

视图函数示例:

复制代码
def article_list(request):
    articles = Article.objects.all()
    return render(request, 'blog/article_list.html', {'articles': articles})

3.模型层Model

模型类定义在models.py中。

文章模型示例:

复制代码
class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_time = models.DateTimeField(auto_now_add=True)
    updated_time = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

一个模型类通常对应数据库中的一张表。

4.数据迁移

修改模型后,需要执行迁移命令。

生成迁移文件:

复制代码
python manage.py makemigrations

执行迁移:

复制代码
python manage.py migrate

5.Admin后台

创建管理员账号:

复制代码
python manage.py createsuperuser

注册模型:

复制代码
from django.contrib import admin
from .models import Article


admin.site.register(Article)

注册后,就可以在Admin后台管理文章数据。

6.模板系统

Django模板可以显示后端传递过来的数据。

显示变量:

复制代码
{{ article.title }}

for循环:

复制代码
{% for article in articles %}
    {{ article.title }}
{% endfor %}

if判断:

复制代码
{% if prev_article %}
    {{ prev_article.title }}
{% endif %}

7.分页功能

分页使用Paginator类。

代码:

复制代码
paginator = Paginator articles, 5)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)

分页可以避免文章过多时全部显示在一个页面中。

8.最近文章列表

最近文章可以使用排序和切片实现。

代码:

复制代码
recent_articles = Article.objects.all().order_by('-created_time')[:5]

9.项目收获

通过这个博客项目,我们主要掌握了:

  1. Django项目和应用的创建
  2. 路由和视图函数的使用
  3. Model模型层的使用
  4. 数据迁移命令
  5. Admin后台管理
  6. 模板系统
  7. 文章列表和详情页
  8. 上下篇文章跳转
  9. 分页功能
  10. 最近文章列表

10.总结

  这一篇我们对Django博客项目做了一个整体总结。通过这个项目,我们已经对Django的基本开发流程有了比较清晰的认识。

  Django是一个功能比较完整的Web框架,里面提供了很多开箱即用的功能,适合快速开发Web项目。大家可以在这个博客项目基础上继续拓展,比如添加分类、标签、评论、用户登录等功能。

  好了,Django入门博客项目就先总结到这里。如果对你有帮助,点赞加关注,我们下篇见。