在线问答系统–静态页面布置

1. 静态页面

该静态页面是仿照知乎页面进行仿写的,一些资料来源于网络。

**静态页面获取**:链接:https://pan.baidu.com/s/1bZpwRqPiIMYk1AEChfAj-w
提取码:56qk
将从网盘的中静态文件下载下来,将assets放在static目录下面,其他.html文件放置模板文件夹中templates

2. 渲染模板

app.py

from Flask import flask,render_template
app = Flask(__name__,static_folder="static/assets")
@app.route('/')
def index():return render_template('index.html')
@app.route("/detail")
def detail():return render_template("detail.html')
....
  • 使用route()装饰器来把函数绑定到URL中
  • 使用render_template()方法可以渲染模板,我们只需要提供模板名称和需要作为参数传递给模板的变量就可以的。
  • Flask 默认会在templates为文件中寻找模板。如何需要更改模板目录,需要是用templates_folder
  • static_folder: 指定静态文件所在的文件夹,它可以是一个绝对路径也可以是相对路径。

关于FLASK中的基础部分知识可以去看一些文档,我这里就不详细介绍了。
falsk文档的地址是:https://dormousehole.readthedocs.io/en/latest/

3. 模板

应用已经写好验证视图,但是如果现在运行服务器的话,无论访问哪个 URL ,都会 看到一个 TemplateNotFound 错误。这是因为视图调用了 render_template() ,但是模板还没有写。模板文件会储存在 flaskr 包内的 templates 文件夹内。

模板是包含静态数据和动态数据占位符的文件。模板使用指定的数据生成最终的文档。 Flask 使用 Jinja 模板库来渲染模板。

Jinja 语句与模板中的静态数据通过特定的 分界符分隔。 任何位于 {{ 和 }} 这间的东西是一个会输出到最终文档的静态式。 {% 和 %} 之间的东西表示流程控制语句,如 if 和 for 。与 Python 不同,代码块使用分界符分隔,而不是使用缩进分隔。因为代码块内的 静态文本可以会改变缩进。关于jinJa,详情请见JinJa官方文档

3.1 模板的基础布局

qa-online/templates/base.html

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>{% block title %}在线问答系统{% endblock %}</title><!-- Bootstrap --><link href=".././assets/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet"><!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 --><!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 --><!--[if lt IE 9]><script src=".././assets/plugins/html5shiv.min.js"></script><script src=".././assets/plugins/respond.min.js"></script><![endif]--><link rel="stylesheet" href=".././assets/style/common.css">{% block header %}{% endblock %}
</head><body class="layout" id="top">
{% block layout %}
{% endblock %}<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src=".././assets/plugins/jquery-3.4.1.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src=".././assets/plugins/bootstrap/js/bootstrap.min.js"></script>
{% block js %}
{% endblock %}
</body></html>

模板中定义了三个块,这些块可以被其他模块进行重载

  1. {% block title %}:会改变显示显示在浏览器标签和窗口中的标题
  2. {% block layout %}:每个文件的具体内容,如登录表单或者首页
    3.{% block js %} :js文件
    其他模板直接放在 templates 文件夹内。为了更好地管理文件,属于某个蓝图 的模板会被放在与蓝图同名的文件夹内
    这里提取了三个模板文件:base.html,base_layout.html,layout_header_nav.html,放在templates/comment,文件夹中,模板中使用的继承。
  • base.html:基础的模板文件
  • layout_header_nav.html`:页面的导航栏部分,除登录注册页面没有以为,其他页面都有
  • base_layout.html:这个模板比较特殊,它继承了base.html文件,同时还包含的了layout_header_nav.html 文件
{% extends 'comment/base.html' %}
{% block layout %}
# qa-online/templates/base_layout.html{# 顶部导航 #}{% include 'comment/layout_header_nav.html' %}{% block content %}{# 内容区域 #}{% endblock %}{# 底部右下角的菜单 #}<div class="layout-footer"><a href="#" data-togge="tooltip" title="意见反馈"><i class="glyphicon glyphicon-briefcase"></i></a><a href="#top" data-toggle="tooltip" title="回到顶部"><i class="glyphicon glyphicon-arrow-up"></i></a></div>
{% endblock %}
{% block js %}<script>$(function () {// 页面右下角的菜单提示$('[data-toggle="tooltip"]').tooltip(){% block js_inline %}{# jquery内部的js逻辑 #}{% endblock %}})</script>{% block js_extra %}{% endblock %}
{% endblock %}

这里就涉及到了模板的继承和包含。

3.2 页面渲染

qa-online/templates/index.html

{% extends 'comment/base_layout.html' %}
{% block title %}{{ super() }} - 首页{% endblock %}
{% block header %}<link rel="stylesheet" href=".././assets/style/index.css">{% endblock %}
{% block content %}这里面填写内容部分(太多了,就不展示了)
{% endblock %}
{% block js_inline %}// 点击,查看更多,把详细的那个p标签展示出来,把自己隐藏$('.show-desc').click(function () {$(this).addClass('hidden');$(this).next().removeClass('hidden')})$('.show-all').click(function () {$(this).addClass('hidden');$(this).prev().removeClass('hidden')})
{% endblock %}

在线问答系统--静态页面布置相关推荐

  1. 学成在线首页——静态页面基础项目(HTML+CSS)【学习笔记】

    来源:黑马前端 难度:⭐(简单)--适合刚学习html和css的新手小白 源码和素材:链接: https://pan.baidu.com/s/1Qf6OuMNyFDswJOcB93NCrw 提取码: ...

  2. 在线问答系统--页面功能开发

    页面功能开发 之前有说过,该在线问答系统分为两种用户功能,一个是注册用户,一个游客 注册用户:回答,发布问题,评论,编辑我的. 游客:浏览页面功能 今天就让我们先来实现游客所能浏览的页面,问题列表页面 ...

  3. CSS+HTML实现学成在线静态页面

    CSS3+HTML实现学成在线静态页面 1.使用工具 1.VScode 2.Chome浏览器 3.Adobe Photoshop CC 2019 2.CSS书写顺序 1.布局定位属性 display ...

  4. asp.net之动态页面和静态页面的区别

    asp.net之动态页面和静态页面的区别 当我开始接触web开发的时候,首先学到的是html.css.js这一类网页语言,通过布局可以搭建出一个静态网站,效果也跟我们上网时经常看到的一些网站一样了.于 ...

  5. 闲置kindle改为电子墨水屏时钟——本地静态页面无需联网

    闲置kindle改为电子时钟 网上搜索了闲置kindle改为电子时钟,看到都是需要用到kindle的浏览器打开在线的网页. 在线页面缺点1: 为了省电,kindle需要设置为飞行模式.飞行后,点击到其 ...

  6. HTML简单静态页面的编写

    文章目录 前言 一.头部标签的编写 1.顶部的前半部分 2.顶部的后半部分 二.中间标签的编写 1.中间部分 二.底部标签的编写 1.底部前半部分 2.底部后半部分 总结 前言 接下来的内容是,利用H ...

  7. 在线问答系统html模板,问答系统网站模板

    充值模块 会员积分:支持设置会员积分及积分累计升级,并获得购买折扣: 会员充值:支持会员充值到账号,用于购买商品,下载点数等开通: 微信 公共号:添加多个公共号,方便管理及推送信息: 自定义菜单:能够 ...

  8. Flask实战开发在线问答系统

    V1.0 首页的基本功能 1.要用到之前的前端页面 2.ORM模型分析及实现,问题,回答,点赞,评论,回复评论 3.使用蓝图改进项目,模块化 项目目录: 4.问题列表的开发 5.问题详情页 标题 项目 ...

  9. html期末作业代码网页设计——化妆品电商网站(4页) HTML+CSS+JavaScript 使用html+css实现一个静态页面(含源码)

    HTML5期末大作业:化妆品电商网站设计--化妆品电商网站(4页) HTML+CSS+JavaScript 使用html+css实现一个静态页面(含源码) 常见网页设计作业题材有 个人. 美食. 公司 ...

最新文章

  1. Boost:由内部绑定的值返回的智能指针的测试程序
  2. Orchard架构介绍
  3. 三套致富战略-教你成为百万富翁
  4. 圣诞节必备装饰场景PSD设计素材,不仅高清高质量
  5. linux中如何记录时间
  6. TM1638驱动显示板(8数码管+8LED+8按键)单片机C语言程序(按键功能)
  7. 关于VM开启黑屏的解决方法
  8. 7的整除特征 三位一截_小学数学竞赛七、数的整除特征(一)
  9. 计算机硬件相关研究内容,计算机硬件论文提纲格式范本 计算机硬件论文提纲怎样写...
  10. innosetup标准安装
  11. Photoshop CS6 for Mac破解版/序列号简介
  12. 自媒体人如何定位?自媒体大号应该怎么去运营和发展
  13. Easypack: Ansible方式部署工具中升级Dashboard至2.0.0版
  14. 对数函数定义域和值域_对数函数的定义域、值域、定点
  15. 软件测试流程及流程管理
  16. 爱因斯坦的数学题(C语言)
  17. ubuntu 16.04升级python3后software updater打开错误
  18. 10强出炉 | 香港科大-杰瑞集团 2022【人工智能】百万奖金国际创业大赛半决赛成功举办...
  19. PFP:面向材料发现的通用神经网络
  20. PostgreSQL的几种常见问题和解决方法

热门文章

  1. 河北2021年9月计算机四级考试成绩查询入口
  2. 超级计算机怎么收费,近距离看中国天河2号内部细节及收费标准
  3. Linux Shell中的美元符号$
  4. 【微服务之分布式Session】Session机制详解及分布式中Session共享解决方案
  5. 放弃icms,换08cms
  6. 博士一篇SCI四区即可入职!安家费120万,直接进编,无非升即走!
  7. 数据可视化管理平台整体解决方案
  8. c语言篮球24秒计时器编程,篮球24秒比赛计时器功能简介
  9. Air Kiss(飞吻)技术简介,AP配网简介,airkissdebugger.apk app给智能设备通过airkiss配网过程
  10. 计算机科学与技术要学政治,北京交通大学计算机科学与技术考研经验分享