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.项目收获
通过这个博客项目,我们主要掌握了:
- Django项目和应用的创建
- 路由和视图函数的使用
- Model模型层的使用
- 数据迁移命令
- Admin后台管理
- 模板系统
- 文章列表和详情页
- 上下篇文章跳转
- 分页功能
- 最近文章列表
10.总结
这一篇我们对Django博客项目做了一个整体总结。通过这个项目,我们已经对Django的基本开发流程有了比较清晰的认识。
Django是一个功能比较完整的Web框架,里面提供了很多开箱即用的功能,适合快速开发Web项目。大家可以在这个博客项目基础上继续拓展,比如添加分类、标签、评论、用户登录等功能。
好了,Django入门博客项目就先总结到这里。如果对你有帮助,点赞加关注,我们下篇见。