加载静态文件,父模板的继承和扩展

  1. 用url_for加载静态文件
    1. <script src="{{ url_for('static',filename='js/login.js') }}"></script>
    2. flask 从static文件夹开始寻找
    3. 可用于加载css, js, image文件
  2. 继承和扩展
    1. 把一些公共的代码放在父模板中,避免每个模板写同样的内容。base.html
    2. 子模板继承父模板
      1.   {% extends 'base.html’ %}
    3. 父模板提前定义好子模板可以实现一些自己需求的位置及名称。block
      1. <title>{% block title %}{% endblock %}-MIS问答平台</title>
      2. {% block head %}{% endblock %}
      3. {% block main %}{% endblock %}
    4. 子模板中写代码实现自己的需求。block
      1.   {% block title %}登录{% endblock %}
  3. 首页、登录页、注册页都按上述步骤改写。
    <!DOCTYPE html>
    <html>
    <head><meta charset="utf-8"><title>base</title><link rel="stylesheet" type="text/css" href="../aa/css/base.css"><link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"><script src="../aa/js/base.js"></script>
    </head>
    <body id="mybody"><nav class="navbar navbar-inverse" role="navigation"><div class="container-fluid" id="container"><div class="navbar-header"><a class="navbar-brand" href="#">首页</a></div><div><ul class="nav navbar-nav"><li><a href="#" onclick="">登录</a></li><li><a href="#" onclick="">注册</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">更多 <b class="caret"></b></a><ul class="dropdown-menu"><li><a href="#">收藏</a></li><li><a href="#">分享</a></li><li><a href="#">搜索</a></li><li class="divider"></li><li><a href="#">点赞</a></li></ul></li></ul></div><div style="float: right"><img id="myonoff" onclick="mySwitch()" src="https://ps.ssl.qhimg.com/sdmt/119_135_100/t01ebad6510c93738fc.gif" style="width:50px" ></div><div><input type="text" name="user" id="user" placeholder="请输入搜索关键词"><input type="button" value="搜索" class="btn btn-success" onclick=""></div></div>
    </nav>
    function mySwitch() {var oBody = document.getElementById("mybody");var oOnoff = document.getElementById("myonoff");if (oOnoff.src.match("t01ebad6510c93738fc")) {oOnoff.src = "https://ps.ssl.qhimg.com/sdmt/119_135_100/t01ebad6510c93738fc.gif";oBody.style.background = "black";oBody.style.color = "yellow"} else {oOnoff.src = "https://ps.ssl.qhimg.com/sdmt/119_135_100/t01ebad6510c93738fc.gif";oBody.style.background = "white";oBody.style.color = "black"}
    }img {width: 200px;
    }
    #container {background: lightsteelblue;}div.sa {border-style: solid;border-width: 5px;border-color: gold;width: 400px;float: left;margin: 5px;
    }div.sa img {width: 80%;heigh: aute;
    }div.st {text-align: center;padding: 2px;
    }div.sa:hover {border-style: solid;border-width: 5px;border-color: green;
    }
    from flask import Flask,render_templateapp = Flask(__name__)@app.route('/')
    def base():return render_template('base.html')@app.route('/index/')
    def index():return render_template('index.html')@app.route('/login/')
    def login():return render_template('login.html')@app.route('/zhuce/')
    def zhuce():return render_template('zhuce.html')if __name__ == '__main__':app.run(debug=True)

     

转载于:https://www.cnblogs.com/xiepingjian/p/7805181.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清华大学《操作系统》(二十三):I/O子系统

常见设备接口类型&#xff1a; 1、字符设备&#xff1a;键盘鼠标、串口 a.以字节为单位顺序访问 b.I/O命令通常使用文件访问接口和语义 2、块设备&#xff1a;磁盘、磁带、光驱 a.均匀的数据块访问 b.I/O命令通常使用文件系统接口&#xff0c;也可以使用内存映射访问 3、网络…

百度地图 Android SDK - 个性化地图

什么是百度个性化地图Android SDK&#xff1f; 百度个性化地图Android SDK是一套基于Android 2.2及以上版本号设备的应用程序接口&#xff0c;您能够通过该套接口实现主要的地图功能&#xff0c;而且能够定制地图样式&#xff0c;实现个性化地图。 该接口提供下面功能&#xff…

mysql读写分离_MySQL基于amoeba读写分离实验

主从复制只是一个同步数据的方式读写分离&#xff1a;只在主的上面写&#xff0c;只在从的上面读读写分离方案&#xff1a;【1】基于程序代码内部 (生产环境中应用最广泛&#xff0c;性能最好&#xff0c;需要开发人员来实现)【2】基于中间代理层的实现amoeda 是阿里巴巴使用的…

Django models模型

Django models模型 一. 所谓Django models模型&#xff0c;是指的对数据库的抽象模型&#xff0c;models在英文中的意思是模型&#xff0c;模板的意思&#xff0c;在这里的意思是通过models&#xff0c;将数据库的借口抽象成python自己的一个类。然后在python Django框架其他代…

Page.FindControl方法找不到指定控件的原因

在ASP.NET 2.0中&#xff0c;引入了MasterPage的机制&#xff0c;在当前页使用MasterPage的情况下&#xff0c;放在 ContentPlaceholder1这样的内容页的控件无法用Page.FindControl来查找&#xff0c;原因何在&#xff1f;MSDN对FindControl的解释&#xff1a;在当前的命名容器…

ATT汇编语言与GCC内嵌汇编简介

AT&T汇编语言与GCC内嵌汇编简介 1 AT&T 与INTEL的汇编语言语法的区别 1.1大小写 1.2操作数赋值方向 1.3前缀 1.4间接寻址语法 1.5后缀 1.6指令 2 GCC内嵌汇编 2.1简介 2.2内嵌汇编举例 2.3语法 2.3.1汇编语句模板 2.3.2输出部分 2.3.3输入部分 2.3.4限制字符 2.3.5破…

Python内存管理以及垃圾回收机制

垃圾回收&#xff1a;用通俗点的语言解释就是内存管理和垃圾回收的过程. 大管家refchain 在Python的C源码中有一个名为refchain的环状双向链表&#xff0c;这个链表就比较厉害了&#xff0c;因为Python程序中一旦创建对象都会把这个对象添加到refchain这个链表中。也就是说他…

pythonfillcolor_openpyxl 填充颜色(单元格)

如果需要填充某个单元格的颜色需要3步&#xff1a;# 1-加载库文件from openpyxl import Workbookfrom openpyxl.styles import PatternFill#2-新建一个工作簿wb Workbook()ws wb.active#随便赋个值d4 ws[D4]d4 43d4.value#3-设置样式&#xff0c;并且加载到对应单元格fill …

Mint-ui中loadmore(上拉加载下拉刷新)组件在ios中滑动会触发点击事件的解决方法...

bug说明&#xff1a; Mint-ui中loadmore(上拉加载下拉刷新)组件 在 使用fastclick的情况下 &#xff0c;在ios设备中滑动会触发点击事件&#xff1b; 解决方法&#xff1a; 我是按需引入&#xff0c;去项目中找到loadmore下的index.js&#xff0c;全部引入的要找mint下面mint-u…

【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net

Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件&#xff0c;包含有丰富的Ajax运用&#xff0c;其前身是Coolite。 下载地址&#xff1a;http://www.ext.net/download/ 示例地址&#xff1a;http://examples.ext.net/ 1.首先下载Ext.Net,地…

面试之操作系统

基本特征 1. 并发 并发是指宏观上在一段时间内能同时运行多个程序&#xff0c;而并行则指同一时刻能运行多个指令。并行需要硬件支持&#xff0c;如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程&#xff0c;使得程序能够并发运行。 2. 共享 共享是指…

mysql新增列并同时增加数据_图解MySQL | [原理解析] MySQL 为表添加列 是怎么quot;立刻quot;完成的...

在上一期图解 图解MySQL | MySQL DDL为什么成本高&#xff1f;中&#xff0c;我们介绍了&#xff1a;传统情况下&#xff0c;为表添加列需要对表进行重建腾讯团队为 MySQL 引入了 Instant Add Column 的方案(以下称为 "立刻加列" 功能)可以快速完成 为表添加列 的任务…

GCC for Win32开发环境介绍

GCC for Win32开发环境介绍(1) 第一章 在视窗操作系统下的GCC 第一节GCC家族概览 GCC是一个原本用于Unix-like系统下编程的编译器。不过&#xff0c;现在GCC也有了许多Win32下的移植版本。所以&#xff0c;也许对于许多Windows开发者来说&#xff0c;GCC还是一个比较陌生的东西…

包装函数

function wrap(object,method,wrapper){ //object:包装方法所属对象 method:方法名 wrapper:替换函数var fn object[method];return object[method] function(){return wrapper.apply(this,[fn.bind(this)].concat(Array.prototype.slice.call(arguments)));}; } 转载于…

JAR——pinyin4j-2.5.0

简介&#xff1a;将中文转为拼音&#xff1b; 使用&#xff1a; 123//返回的是字符串String pinyin[] PinyinHelper.toHanyuPinyinStringArray(chinese);//eg:你----ni3本文转自wauoen51CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/7183397/1605894&#…

Android高效加载大图、多图解决方案,有效避免程序OOM

http://blog.csdn.net/guolin_blog/article/details/9316683转载于:https://www.cnblogs.com/jianglijs/p/7827524.html

Flask 上下文源码解析

简单来说&#xff0c;上下文包括request_ctx(封装了request和session),app_request(封装了app和g)&#xff0c;两个ctx都储存在一个叫做Local的数据结构中&#xff0c;这个结构的作用就是会自动根据不同的线程id返回对应的数据&#xff0c;然后通过一个叫做 LocalStark 的结构把…

reg型变量怎么赋值_UiPath变量介绍和使用

1 变量变量主要用于存储数据&#xff0c;它在RPA中扮演重要的数据传递角色&#xff0c;是RPA编程不可或缺的一部分。它包括变量名称和变量的值&#xff0c;变量的值支持多种数据类型&#xff0c;包括从通用值&#xff0c;文本&#xff0c;数字&#xff0c;数据表&#xff0c;时…

gcc 使用教程

gcc 使用教程 目 录 gcc makefile写法 gcc_egcs使用 gdb使用 gcc常用选项对代码的影响 一般情况 -O 编译选项 -O2 编译选项 -fomit-frame-pointer 编译选项-fomit-frame-pointer && -O2-fPIC 编译选项 -static 编译选项 AT&T的汇编格式 x86内联汇编 简述 内联汇编…

Struts2教程9:实现自已的拦截器

在上一篇中介绍了Struts2拦截器的原理&#xff0c;在这一篇中我们将学习一下如何编写自己的拦截器。一、拦截器的实现实现一个拦截器非常简单。实际上&#xff0c;一个拦截器就是一个普通的类&#xff0c;只是这个类必须实现com.opensymphony.xwork2.interceptor.Interceptor接…