博客首页1-Python博客系统实战图文教程
作者:huke88发布时间:2022年02月14日 08:01

虎课网为您提供字体设计版块下的博客首页1-Python博客系统实战图文教程,本篇教程使用软件为Python3、Django 3.2.6 、Mysql5.7、BootStrap3.4.1、 jQuery2.1.3,难度等级为中级拔高,下面开始学习这节课的内容吧!



那就开始今天的教程吧


1.这节课来创建博客网站的首页,内容主要就是对文章首页的模板进行编写,重点是讲解视图层,通过通用视图ListView,来给大家展示如何使用通用视图更快速的编写views这个层面的代码,


 强化前端使用的BootStrap框架,首页实际上就是网站的根目录,因为博客文章的这些数据都已经创建完了,不需要开发model层,直接来开发view层。

2.定义一个方法叫【index】,它有个参数request,要查询所有的文章,比方说blog_list,它是models.Bloginfo.objects.all,把它所有的记录拿出来,然后rende(request,"blog/index.html",),


 这是要映射的模板,带着一个参数blog_list,它的内容是文章的列表,在前端把url配出来在blog这个APP里边,增加首页的路由,因为【首页就是根路径】,这个path里边也是空字符串,


 相当于现在访问首页就是以http然后127.0.0.1:8000,这些是服务器的地址,根路径就访问到现在要做的首页。

3.应用中的路由也没有前序的副路径,它就是两个空串,所以它定义的就是网站的根目录,先创建index.html,blog index说明是创建的这个index模板,for blog in blog_list,返回变量的名字,


 先把for和endfor写上,【这个标签如果手写一定要注意,它是有开始和结束的】,这里边进行打印,里边加blog.tittle,能打印出来所有的文章的标题,这是django模板层面的一个变量和循环的语法。

4.回到views中,将这个函数换一种写法,定义一个类class,这个类起名字叫index,让它继承自List,导入django.views.generic.ListView,这个包就是django框架模板的一个类,这个类里边非常简单,


 定义模型model,数据是从models.Bloginfo里出,要查这个模型的所有数据,要映射到template模板上,template_name是blog/index.html,下一个也是需要的变量,context_object,context_object_name,、


 blog_list,就这三个变量定义完,跟下面的这个方法做对比。

5.List它是获取一组数据的,这个场景里边是获取一组文章的列表会用到ListView,获取一个文章要用到DetailView,这个view分三种,第一个ListView,第二个叫DetailView,还有一个叫TemplateView,


 那么ListView,List从字面上理解它就是一个列表,是一个数据集合,返回的数据是一个文章的列表,文章从哪个模型来,就用model这个属性来定义,前台用template_name,返回的数据集在整个的网页上下文,


 模板的上下文中就跟这个参数是一样的,叫blog_List。

6.在Bloginfo里边已经给出了默认的排序方法,在这个ListView中它就会使用这个排序来展示文章的顺序,里边的语义就比较简单,是一种约定的规则,按照ListView提供给到的约定,


 就可以创建出包含上下文变量的数据查询的返回,把这个class名字复制,回到url中,url中映射关系的时候就不能写index,这个index已经把它注释掉了,要换成indexview,现在它是一个类,


 需要用as_view的这个方法来处理调用。

7.为了证明这个代码是改过的,加一行打印,print这个indexview,看后台的日志,这里indexview  class已经打印出来了,现在这个请求就是以通用视图类来定义一个写法,用这种方法开发会更加的高效,


 所以这一堂课核心是介绍这个类的基础用法,它是可以自定义的,有一些复杂的需求的时候可以去改变它,重写它里边的一些方法,就可以达到自定义展示内容的目的。

8.下一步需要优化前端样式,删掉现在这个index,把这个注册复制一份改成index,因为它里边还有一些是可以用的,所有的头像上传代码是通用的,它将选择的这个文件上传到后台,


 将上传后的结果路径复制到图片的src属性上,然后图片进行刷新,继续的优化导航条,还是找到boot文档,组件中可以找到导航条的示例,直接copy它,然后把导航条先替换,先留一行是为了替换这个类,


 把代码做对齐的处理,然后按照要求去改里边的内容。 

9.里边加一个判断条件,因为需要判断当前的这个用户是不是登录状态,用if  request.user.username,如果登录了,user对象中username是有属性的,如果没登录里边是没有属性的,对于boot这种前端框架的使用,


 在你了解html基础上,去做复制粘贴,然后去修改就可以了,没有必要去背下来。

10.希望显示当前登录的用户名,要用到变量的取值【request  user.username】,就是当前登录的用户是谁会展示在这个位置,这一段代码又要用if来扩张,用户登录了才会展示内容,里边添加登录和注册按钮,


 个人中心中写我的收藏,个人信息,修改密码,最后有一个退出,直接写/logout就可以了。

11.换一种写法,如何用别名来映射连接,前面写一个url的映射关系,后面写个字符串blog:login,要去blog应用的这个路由中去找,它找的是这个名字login,网页写完了之后,把之前写的功能registe逐步的链接上来,


 刷新前端网页,在没登录的情况下就会有两个按钮。

12.来画中间的部分,现在的这个页面布局不是注册页面,先把整体的结构写出来,因为这些代码在boot的文档上都能够找得到,class="content-body"  body,你们也可以找一些代码去复制,这个里边还是要有一个div,


 div  class=“container”  container,还有一个div,它的class=row,需要将显示区域一分为二,各种分类的标签要把它分成两部分。

13.第一部分是文章的主体内容,就用一个【main标签】,让它占8格,所以main class也是要加一个class的,删格里边定义col-中型的8,底下再来一个aside标签,这个标签也有一个class,这个时候它要占4格,md-4,


 里边先留个空,未来要写的是分类的索引。

14.先把这些索引加进来,回去找Boot文档,索引应该用panel,简单的一个面板【class  panel】,直接拿过来就用,回到之前的示例中,这个标题就叫最新文章,文章的列表会用到ul元素,ul里边套着li,


 文章也是有一些连接,所以它里边还是一个a标签,这就是文章标题,这里边要加它的href  href,现在写一个#先放着。

15.进行测试,第一个文章出来了,先写一个静态的模板,下面就是文章分类,相当于未来会有文章分类内容的展示,先把这种静态的内容规划好,让它在样式上没问题,再往里面添动态的内容。

以上就是博客首页1-Python博客系统实战图文教程的全部内容了,你也可以点击下方的视频教程链接查看本节课的视频教程内容,虎课网每天可以免费学一课,千万不要错过哦!


特别声明:以上文章内容仅代表作者huke88本人观点,不代表虎课网观点或立场。如有关于作品内容、版权或其它问题请与虎课网联系。
500+精品图书
20G学习素材
10000+实用笔刷
持续更新设计模板
立即领取

下载虎课APP

随时随地学技能
APP更方便
每天免费学课程
下载虎课网APP
随时随地学海量会员教程
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习90000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了33,301
并提交了258份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 90000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证