Django博客系统(详情页面展示)
1. 页面展示
1.在home.views.py文件中定义视图
from django.views import Viewclass DetailView(View):def get(self,request):return render(request,'detail.html')
2.在home.urls.py文件中定义路由
from users.views import DetailView
urlpatterns = [# 参数1:路由# 参数2:视图函数# 参数3:路由名,方便通过reverse来获取路由path('detail/', DetailView.as_view(),name='detail'),
]
3.修改detail.html中的资源加载方式
<!-- Header部分 -->{% load staticfiles %}<!-- 引入bootstrap的css文件 --><link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}"><!--详情页面导入--><script src="{% static 'ckeditor/ckeditor/plugins/prism/lib/prism/prism_patched.min.js' %}"></script><link rel="stylesheet" href="{% static 'prism/prism.css' %}"><!--导入css--><link rel="stylesheet" href="{% static 'common/common.css' %}"><link rel="stylesheet" href="{% static 'common/jquery.pagination.css' %}"><!-- 引入vuejs --><script type="text/javascript" src="{% static 'js/vue-2.5.16.js' %}"></script><script type="text/javascript" src="{% static 'js/axios-0.18.0.min.js' %}"></script><script type="text/javascript" src="{% static 'js/jquery-1.12.4.min.js' %}"></script>...<!-- Footer部分 --><!--ckeditor--><script type="text/javascript" src="{% static 'ckeditor/ckeditor-init.js' %}" data-ckeditor-basepath="{% static 'ckeditor/ckeditor/' %}" id="ckeditor-init-script"></script><script type="text/javascript" src="{% static 'ckeditor/ckeditor/ckeditor.js' %}"></script><!-- 引入js --><script type="text/javascript" src="{% static 'js/host.js' %}"></script><script type="text/javascript" src="{% static 'js/common.js' %}"></script><script type="text/javascript" src="{% static 'js/detail.js' %}"></script><script type="text/javascript" src="{% static 'js/jquery.pagination.min.js' %}"></script>...<!-- 页面跳转部分 --><a class="dropdown-item" href="{% url 'users:writeblog' %}">写文章</a><a class="dropdown-item" href='{% url 'users:center'%}'>个人信息</a><a class="dropdown-item" href='{% url 'users:logout' %}'>退出登录</a>
2. 首页接口设计
1.请求方式
选项 | 方案 |
---|---|
请求方法 | POST |
请求地址 | /?id=xxx&page_num=xxx&page_size=xxx |
2.请求参数
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
id | string | 否 | 文章id |
page_num | string | 否 | 评论页码 |
page_size | string | 否 | 评论每页条目数 |
3.响应结果:HTML
字段 | 说明 |
---|---|
失败 | 响应错误提示 |
成功 | 展示数据 |
3. 查询分类数据并展示
1.查询文章数据并通过context传递给HTML
class DetailView(View):def get(self,request):# detail/?id=xxx&page_num=xxx&page_size=xxx#获取文档idid=request.GET.get('id')# 获取博客分类信息categories = ArticleCategory.objects.all()try:article=Article.objects.get(id=id)except Article.DoesNotExist:return render(request,'404.html')context = {'categories':categories,'category':article.category,'article':article,}return render(request,'detail.html',context=context)
2.在detail.html文件中使用模板语言展示文章数据
#分类数据展示<div><ul class="nav navbar-nav">{% for cat in categories %}{% if cat.id == category.id %}<li class="nav-item active"><a class="nav-link mr-2" href="/?cat_id={{ cat.id }}">{{ cat.title }}</a></li>{% else %}<li class="nav-item"><a class="nav-link mr-2" href="/?cat_id={{ cat.id }}">{{ cat.title }}</a></li>{% endif %}{% endfor %}</ul>
</div>#详情数据展示<!-- 标题及作者 -->
<h1 class="mt-4 mb-4">{{ article.title }}</h1>
<div class="alert alert-success"><div>作者:<span>{{ article.author.username }}</span></div><div>浏览:{{ article.total_views }}</div></div>
<!-- 文章正文 -->
<div class="col-12" style="word-break: break-all;word-wrap: break-word;">{{ article.content|safe }}
</div>
<br>
4. 修改首页跳转到详情页面的链接
<!-- 标题 -->
<h4><b><a href="{% url 'home:detail' %}?id={{ article.id }}" style="color: black;">{{ article.title }}</a></b>
</h4>
Django博客系统(详情页面展示)相关推荐
- Django博客系统(404页面展示)
1. 修改查询不到数据返回的响应 1.在home.views.py文件中定义视图 try:article=Article.objects.get(id=id) except Article.DoesN ...
- Django博客系统(详情评论数据展示)
1. 查询评论数据并展示 1.查询评论数据并通过context传递给HTML from home.models import Comment from django.shortcuts import ...
- Django博客系统(首页用户名展示)
1. 用户名写入到cookie # 响应登录结果 response = redirect(reverse('home:index'))# 设置状态保持的周期 if remember != 'on':# ...
- 黑马博客——详细步骤(十一)博客系统的前台展示页面
7.博客系统的前台展示页面:首页+文章详情页面 改后缀为.art 改模板文件中的相对路径为绝对路径 验证首页和文章详情页没有问题 default.art 和 article.art 出口body和cs ...
- 博客系统前端页面代码实现及页面展示(代码版)
hi,大家好,今天为大家带来博客系统的前端代码及页面展示 我们使用VS code 这个编码工具来编写代码 博客系统前端页面分为四个部分 1.博客列表页 2.博客编辑页 3.博客登录页 4.博客详情页
- 博客系统程序(页面设计)
咱们学习javaEE的目的就是完成一个网站.在当前学习的基础上,已经可以完成我们的博客系统的页面的设计了!!! 首先我们要进行统筹规划: 首先我们的博客页面将会有4个页面: 1.博客列表页 2.博客详 ...
- 实现一个博客系统(前端页面设计)
博客系统的四个页面展示效果: 注意CSS有一些隐式规定,下面代码的状态:上下边距不是50px(不是两者边距之和,而是他们的最大值);上下边距塌方问题,况且只在垂直方向有,水平方向就是他们的和:况且他的 ...
- 博客系统(页面设计)
目录 博客系统(页面设计) 效果预览 博客列表页 博客详情页 博客登录页 博客编辑页 实现博客列表 实现导航栏 实现版心 实现左侧个人信息 实现博客列表 实现博客详情页 引入导航栏(HTML.CSS) ...
- 简单博客系统静态页面(html+css+JavaScript+第三方库Jquery mdn)
目录 一.基本构造 1.博客列表页 2.博客详情页 3.登录页 4.博客编辑页 二.文件目录 1.css 文件夹 blog_detail.css blog_edit.css blog_list.css ...
最新文章
- 开发日记-20190726 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 16
- ContextMenu长按事件
- 多年软件测试大牛分享成长经历,一个好的软件测试工程师应该做到这些!
- linux set命令例子,学习一个 Linux 命令:declare/typeset 命令
- Python3.7.2版本出现ModuleNotFoundError: No module named 'paramiko'解决办法
- JavaEE基础(六)
- python三方库是什么_python第三方库有哪几种
- 更改dockers的host文件中的ip,当主机ip改变时,dockers无法启动。
- 宣州谢朓楼饯别校书叔云
- ubuntu16.04安装百度网盘
- docker:error pulling image configuration
- c语言atof函数_atof()函数与C ++中的示例
- Ubuntu20.04虚拟机使用Kubeadm从0到1搭建K8S集群(超详细)
- shader Cg 基本数据类型
- JAVA导入大量数据的Excel,如何分块读取并避免内存溢出?
- win10 系统下安装ubuntu实现双系统爬坑记录
- 汇市经典好文:Y先生稳定赚18.2万美金
- golang switch灵活写法
- vue3项目实战---知乎日报----登录页
- 计算机毕业设计源代码java项目开发实例ssm+mysql实现零食商城系统(电商项目)[包运行成功]
热门文章
- 《评人工智能如何走向新阶段》后记(再续25)
- 百万人学AI:CSDN重磅共建人工智能技术新生态
- 联泰集群发布水晶系列工作站,用于深度学习场景
- 用对方法,开发与部署深度学习原来如此简单……
- 手机AI、购物AI...还有哪个“AI+”被忽略了?
- 图解 i++ 和 ++i 的区别,看完不懂你顺着网线来揍我!
- 一文搞懂 CountDownLatch 用法和源码!
- 挺带劲,这款国人开源的监控系统功能真强大~
- NullPointerException 的处理新方式,Java14 真的太香了!
- 我把SpringBoot项目从18.18M瘦身到0.18M,部署起来真省事!