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年3月15日 20:06
©允许规范转载
Django Python版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:https://www.yangyingqi.com/8.html