首页导航条搭建

session判断用户是否登录

参考博客园导航条:

用户已经登录:右上角显示 '个人中心'

用户未登录:右上角显示 '注册' 、'登录' 按钮

使用模板语法判断用户是否登录:

如果没有登录则显示注册登录按钮:

更换验证码

点击验证码可以更换:

给img图片添加一个事件:

拿到原来的img标签的src属性,再重新赋值。

另外一种写法:

导航条更多功能

显示用户名:

导航条下拉框更多操作:

查看效果:

退出系统

清空session并跳转到登录页面:

修改密码前端页面

使用大模态框

效果:点击修改密码,弹出一个模态框。

使用大模态框:

放置模态框:

不用在意放置模态框的位置,因为模态框不触发的情况下不会显示。

给修改密码的按钮,绑定模态框:

修复大模态框bug:

在模态框的类中添加bs-example-modal-lg类:

编写模态框

快捷语法:

示例:



提交按钮复制官网的:

效果:

添加label标签:

前端表单编写

直接复制之前注册时写的表单,在原有的基础上修改:

针对修改密码,单独开一个路由set_pwd

如果这个ajax的路由不写,则会直接提交到首页对应的路由了。

接受到后端返回的信息之后,刷新页面:

修改密码后端逻辑

接受参数

验证参数

修改密码

首页主体内容

首页布局:(2、8、2)布局

代码示例:

侧边栏:使用Bootstrap面板

代码示例:

中间部分博客园示例:

使用bootstrap媒体对象:

调整头像大小。

添加标题、简介:

添加额外信息:

添加样式:

添加图标:

给文章标题添加悬浮样式:

查看效果:

多篇文章添加水平线:

在媒体对象之前添加一个hr标签即可。

首页数据展示

我们希望把数据库中的数据动态的展示在首页。

数据库中的文章表:

首页后端视图函数:

我们只需要循环展示媒体对象即可:

模板语法渲染媒体对象:

作者名如何获取:

通过文章表 --查找- > 作者名

文章 -- > 站点 --> 作者

文章查站点

文章表和站点表的关系是一对多。

文章表是一对多中的多。

外键字段在文章表所以是个正向查询按类中字段:也就是model类中的blog属性。

站点查作者

站点和作者的关系是一对一。外键字段在作者表。

所以从站点到作者是反向查询。反向查询按照类名小写。

显示作者名:

显示文章时间:

剩余三个字段:

这里因为我们的文章表里有这3个字段,很容易查询。(优化字段)

头像显示:

作者表示例:

个人站点页面搭建

个人站点页使用39布局。

示例:

侧边栏展示标签、分类、归档:

主体内容:

也可以复制之前写的首页。

个人站点路由

\w:匹配包括下划线的任意单词字符

缺点:匹配的范围太大,可能会出现路由被顶掉的现象。建议把这种匹配的范围太大的路由往下面放。

这里是使用有名分组。username是这个分组的名字。括号内匹配到的路由,会作为位置参数传给blog视图函数:

验证用户输入路由是否存在:

拿着用户名去数据库查,如果该用户不存在,返回定制的404页面。

复制b站的404页面:

公司开发之入乡随俗。如果是前后端结合前端还得学后端的开发语言。前后端分离就不用写后端了。

BBS项目(二):首页导航条搭建 修改密码功能 首页数据展示 个人站点页面的更多相关文章

  1. BBS项目(二): 登录功能 首页导航条搭建 首页主体部分 个人站点页面搭建 文章分类与标签 日期归档

    目录 登录功能 pillow模块生成验证码 前端发送ajax请求 后端auth模块校验 sweetalert弹窗提示登录失败 首页导航条搭建 修改密码 退出登录 首页主体部分 首页前端框架搭建 adm ...

  2. 一百二十四:CMS系统之首页导航条和代码抽离

    模板抽离 由于前后台的模板有些需要的元素如,js,css是相同的,这里抽离出来做base模板 {% from "common/_macros.html" import static ...

  3. 夺命雷公狗---DEDECMS----14dedecms首页导航条的完成

    我们的首页完成了,那么下一步就开始创建一个模型了, 添加好电影模型后我们来给他添加一些字段,这些字段主要还是要看我们的项目需求来添加的,因为我们的项目里有: 我们在项目中要用得上这些字段,所以要对他们 ...

  4. Flask实战第47天:首页导航条首先和代码抽离

    新建一个前台页面的父模板front_base.html 导航条是总boostrap v3中文站拷贝过来的,然后根据自己的需求做一些修改 <!DOCTYPE html> <html l ...

  5. Vue小项目二手书商城:(三)前端渲染数据

    实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...

  6. JavaWeb网上图书商城完整项目--day02-19.修改密码功能流程分析

    我们来看看修改密码的业务流程操作:

  7. Sharepoint增加修改密码功能

    Sharepoint中没有自带的修改密码的功能. 如果使用的是AD验证,修改密码,只要修改域帐号的用户名密码就可以了.以下代码可以修改本机密码和域帐号密码. 做法是,添加一个webpart,做一个页面 ...

  8. SSH 基于ajax实现修改密码功能步骤梳理

    1. 为密码输入框进行输入校验,使用easyUI提供的easyui-validatebox <table cellpadding=3> <tr> <td>新密码:& ...

  9. Web实现数据库链接的登录注册修改密码功能

    /** * Copyright (C), 2017-2017 * FileName: User * Author: ichimoku * Date: 2017/12/5 14:31 * version ...

  10. Vue项目二、vue环境搭建以及Vue-cli使用及详解

    一.Vue多页面应用的环境搭建 每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用. 环境的搭建如下,在页面中引入如下框架 <scrip ...

随机推荐

  1. HTTP响应状态码([RFC9110])

    本内容翻译自[RFC9110]15. Status Codes,不足之处请自行查阅文档. 15. 状态码 响应的状态码是一个三位整数代码,用于描述请求的结果和响应的语义,包括请求是否成功以及附带了什么 ...

  2. L2-028 秀恩爱分得快

    90行,调了俩小时,大约有以下坑点. 1.每个数字都可能正负出现,比如-0 0,-1 1,一开始以为一个数的正负只会出现一个. 2.当俩人都不出现在照片中,那么输出俩人就行 3.当其中一个人不在照片里 ...

  3. (Good topic)卡牌分组(3.27leetcode每日打卡)

    给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:  每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X &g ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (138)-- 算法导论11.4 2题

    二.用go语言,试写出HASH-DELETE 的伪代码;修改 HASH-INSERT,使之能处理特殊值DELETED. 文心一言: 首先,让我们定义一个基本的哈希表数据结构.这个结构将包括一个存储键值 ...

  5. [GDOIpj222B] 网页浏览

    第二题 网页浏览 提交文件: webpage.cpp 输入文件: webpage.in 输出文件: webpage.out 时间空间限制: 1 秒, 256 MB 我们在上网时,从一个网页上的链接打开 ...

  6. 安卓之各组件的LayoutParams分析

    文章摘要 在Android开发中,LayoutParams是一个非常重要的概念,它用于描述View在其父容器中的布局行为.不同的ViewGroup有不同的LayoutParams子类,例如Linear ...

  7. Spring源码学习之Web数据绑定器WebDataBinder

    WebDataBinder 1.描述 特殊的数据绑定器用于从web请求参数到JavaBean对象的数据绑定.专为web环境,但不依赖于Servlet API;作为更具体的DataBinder变体的基类 ...

  8. 将MultipartFile对象转换成File对象

    将MultipartFile对象转换成File对象 // 将MultipartFile对象转换成File对象 private File convertToFile(MultipartFile mult ...

  9. 在Windows操作系统中,使用powershell脚本批量删除、批量替换文件名

    比如我们下载的mp3文件或者小说.评书里都带很多作者.网站等信息,如何批量一键删除掉多余的字段呢? 下面举例:批量删除文件名称 可以看到原文中,所有文件名中均包含"小番茄与火龙果-" ...

  10. Ubuntu apt-get 的使用

    在Ubuntu中,可以使用apt-get命令来管理软件包.下面是一些常见的apt-get命令及其用法: 安装软件包: sudo apt-get install <package> 其中,& ...