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

  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.首页、登录页、注册页都按上述步骤改写。

base.py

from flask import Flask,render_template

app = Flask(__name__)

@app.route(‘/‘)
def index():
    return render_template(‘index.html‘)

@app.route(‘/login/‘)
def login():
    return render_template(‘login.html‘)

@app.route(‘/regist/‘)
def regist():
    return render_template(‘regist.html‘)

if __name__ == ‘__main__‘:
    app.run(debug=True)

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>{% block title%}{% endblock %}base</title>
    <link rel="stylesheet" type="text/css" href="../static/css/base.css">
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">

    <script src="../static/js/base.js"></script>
{% block head %}
{% endblock %}
</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="http://127.0.0.1:5000/login/" onclick="">登录</a></li>
                <li><a href="http://127.0.0.1:5000/regist/" 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>
                <li><a href="#">||</a></li>
            </ul>
        </div>
        <div style="float: right">
            <img id="myonoff" onclick="mySwitch()" src="http://www.runoob.com/images/pic_bulbon.gif" style="width:40px" >
        </div>
        <div>
            <input type="text" name="user" id="user" placeholder="请输入搜索关键词">
            <input type="button" value="搜索" class="btn btn-success" onclick="">
        </div>
    </div>
</nav>
{% block main %}{% endblock %}
</body>
</html>

login.html

{% extends ‘index.html‘ %}
{% block title %}登录{% endblock %}

{% block head %}
    <link href="../static/css/login.css" rel="stylesheet" type="text/css">
    <script src="../static/js/login.js"></script>
{% endblock %}

{% block main %}
<body class="bg">
<div id="container">
    <div class="box">
        <h2 id="denglu">登录</h2>

        <div class="input_box">
            <input type="text" id="uname" placeholder="请输入用户名">
        </div>
        <div class="input_box">
            <input type="password" id="upass" placeholder="请输入密码">
        </div>
        <div class="error" id="error_box"><br></div>
        <div class="input_box">
            <button id="login" type="submit" onclick="fnLogin()">登录</button>
            <button id="cancel" type="cancel" onclick="fnLogin()">取消</button>
        </div>

   </div>
{% endblock %}
</body>
</html>

regist.html

<{% extends ‘index.html‘ %}
{% block title %}注册{% endblock %}

{% block head %}
    <link rel="stylesheet" type="text/css" href="../static/css/login.css">
    <script src="../static/jsp/regist.js"></script>
{% endblock %}

{% block main %}
<body class="bg">
<div id="container">

<div class="box">
    <h2 id="zhuce">注册</h2>

    <div class="input_box">
        <input type="text" id="uname" placeholder="请输入用户名">

    </div>
    <div class="input_box">
        <input type="phone" id="phone" type="text" placeholder="手机号">
    </div>
    <div class="input_box">
        <input type="password" id="pass" placeholder="请输入密码">

    </div>
    <div class="input_box">
        <input type="password" id="password" placeholder="请再次输入密码">
    </div>
    <<div class="error" id="error_box"><br></div>

    <div class="input_box">
        <button id="register" onclick="fnLogin()">注册</button>
    </div>
</div>
</body>
{% endblock %}
</html>

运行结果如图:

时间: 2024-10-09 04:28:14

二十一、加载静态文件,父模板的继承和扩展的相关文章

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

用url_for加载静态文件 <script src="{{ url_for('static',filename='js/login.js') }}"></script> flask 从static文件夹开始寻找 可用于加载css, js, image文件 继承和扩展 把一些公共的代码放在父模板中,避免每个模板写同样的内容.base.html 子模板继承父模板 {% extends 'base.html' %} 父模板提前定义好子模板可以实现一些自己需求的位置及

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

用url_for加载静态文件 <script src="{{ url_for('static',filename='js/login.js') }}"></script> flask 从static文件夹开始寻找 可用于加载css, js, image文件 继承和扩展 把一些公共的代码放在父模板中,避免每个模板写同样的内容.base.html 子模板继承父模板 {% extends 'base.html' %} 父模板提前定义好子模板可以实现一些自己需求的位置及

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

用url_for加载静态文件 <script src="{{ url_for('static',filename='js/login.js') }}"></script> flask 从static文件夹开始寻找 可用于加载css, js, image文件 继承和扩展 把一些公共的代码放在父模板中,避免每个模板写同样的内容.base.html 子模板继承父模板 {% extends 'base.html' %} 父模板提前定义好子模板可以实现一些自己需求的位置及

Django加载静态文件

方法一: 1.在app目录中创建static 目录,并在该目录下创建存储css,img,js的子目录. 2.在相应的目录下创建相对应的静态文件. static/css/mystyle.css, static/img/timg.jpg,(保存图片) static/js/myjs.js 3.在模板文件中加载静态文件 例: mystyle.css: body{ background:blue;} myjs.js: alert('hello') static_test.html: {% load sta

jinjia2 flask加载静态文件

一.加载静态文件 静态文件:css 文件.js文件.图片文件 加载静态文件使用的是“url_for”函数 语法:{{ url_for( "static", filename="xxxxx" ) }} 路径查找,要以当前项目的static目录作为根目录. 二.实例:   原文地址:https://www.cnblogs.com/yingxiongguixing/p/11987485.html

在python3中如何加载静态文件详版步骤

在一个网页中,不仅仅只有一个`html`骨架,还需要`css`样式文件,`js`执行文件以及一些图片等.因此在`DTL`中加载静态文件是一个必须要解决的问题.在`DTL`中,使用`static`标签来加载静态文件.要使用`static`标签,首先需要`{% load static %}`.加载静态文件的步骤如下: 首先确保`django.contrib.staticfiles`已经添加到`settings.INSTALLED_APPS`中. 确保在`settings.py`中设置了`STATIC

041:模版中加载静态文件详解

加载静态文件: 在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件, js 执行文件以及一些图片等.因此在 DTL 中加载静态文件是一个必须要解决的问题.在 DTL 中,使用 static 标签来加载静态文件.要使用 static 标签,首先需要 {% load static %} .加载静态文件的步骤如下: 1. 首先确保 django.contrib.staticfiles 已经添加到 sttings.INSTALLED_APPS 中. 2. 确保在 settings.p

django开发环境setting.py里面设置debug=false时却成功加载静态文件?

django开发环境setting.py里面设置debug=false时却成功加载静态文件?按理来说应该是加载失败的. 启动服务器,运行正常,但是静态文件如css,js,图片是无法加载的. 问题: 解答:问题在于使用的是谷歌浏览器,默认使用了缓存.导致每次访问同一个url时,都返回的是缓存里面的东西. 通过谷歌浏览器里面的开发者工具network下面的选项能禁用缓存.禁用缓存之后,则在django开发环境里面,运行 python manage.py runserver,如将DEBUG的值设为Tr

Springmvc加载静态文件和开启EL表达式的支持

一.静态文件加载问题 刚开始学习SpringMVC,发现静态文件无法加载 web.xml配置如下: <web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt