Django个人博客开发七 | 博客首页开发


2020年4月2日 22:39 阅读 642 评论 0 None

1、添加视图函数

我们在 yyqblog -> blog ->views.py中加入如下代码:

from django.shortcuts import render, get_object_or_404 
from .models import * #引入前面定义的所有模型 
# Create your views here. 

def index(request): 
    # Article.objects.all()获取Acticle模型中的所有内容 
    # order_by('-created_time') 按照发表时间倒序排列 去掉-号就是正序 
    posts = Article.objects.all().order_by('-created_time') 
    context['posts'] = posts 
    # 第一个参数不用管加上即可 
    # 第二个参数为你要返回的模板名 
    # 第三个参数是你要给模板填充的数据,是一个dict字典 
    return render(request, 'index.html', context) 

2、配置路由

在blog app下新建一个urls.py的文件

然后再在项目总路由 yyqblog -> urls.py中添加

from django.contrib import admin 
from django.urls import path,include # 引入include方法 

urlpatterns = [ 
    # 将 blog app里的路由包含进去,这样以后增加新路由直接在blog app的urls.py中添加即可 
    path('',include('blog.urls')), 
    path('admin/', admin.site.urls), 
] 

在刚才在blog app中新建的urls.py中增加首页路由

from django.urls import path 
from . import views #引入视图函数 

urlpatterns = [ 
    # 第一个参数是url路径,因为是主页所以留空 第二个参数是前面在views.py中写的视图函数 
    path('', views.index), 
] 

这样博客主页后端就配置完成,接下来是前端

ps: 因为主要是讲Django,所以前端内容仅实现逻辑,后面的内容都是一样

3、添加模板

现在我们进入博客的首页 127.0.0.1:8000, 发现还是欢迎页面,因为我们还没有给博客添加任何模板,也就是前端HTML页面

我们在blog下创建一个名为templates的文件夹,用于存放博客相关模板

我们新建一个名为index.html的文件作为博客首页模板, body内容如下:

# posts就是视图函数中返回的字典中的posts的值,里面包含着所有博文的信息 
{% for post in posts %} 
    <a href="/article/{{ post.id }}">{{ post.title}}</a></br> 
{% endfor %} 

我们现在启动Django,进入虚拟环境后,键入:

python manage.py runserver  

回到浏览器,刷新,如下图:

博客主页

若是空白,请先在admin后台中添加几篇文章......

首页完成后接下来每写一点,都会在前台看到自己的成果。

坚持,美好即将来临~

最后修改于2020年4月2日 22:39
©允许规范转载

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:https://www.yyqblog.com/article/8.html

微信
支付宝
登录后即可进行评论/回复