首页 > 其他分享 >10.静态文件

10.静态文件

时间:2023-11-19 19:24:01浏览次数:40  
标签:10 文件 静态 添加 static CSS 图片

静态文件

静态文件(static files)和模板概念相反,指的是内容不需要动态生成的文件,比如图片、CSS 文件和 JavaScript 脚本等。

在 Flask 中,需要创建一个 static 目录来保存静态文件,它应该和程序模块、templates 在同一目录层级。

生成静态文件 URL

在 HTML 文件里,引入这些静态文件需要给出资源所在的 URL。为了更加灵活,这些文件的 URL 可以通过 url_for() 函数来生成。

对于静态文件,url_for() 中需要传入的路由是 static,同时使用 filename 参数来传入相对于 static 文件夹的文件路径。

假如在 static 文件夹的根目录下面放了一个 logo.jpg 文件,可以这样来获取图片:

<img src="{{ url_for('static', filename='pic.jpg') }}">

花括号部分的调用会返回 /static/pic.jpg

这里要注意,在 Python 脚本里,url_for() 函数需要从 flask 包中导入,而在模板中则可以直接使用就可以,因为 Flask 把一些常用的函数和对象添加到了模板上下文里。

添加图标

图标(favourite icon) 是显示在标签页和书签栏的网站头像。需要准备一个 ICO、PNG 或 GIF 格式的图片,大小一般为 16×16、32×32、48×48 或 64×64 像素。把这个图片放到 static 目录下,然后在 HTML 模板里引入它。

创建 flask_static.py

from flask import Flask, render_template

# 创建 Flask 应用程序实例
app = Flask(__name__)

# 定义路由和视图函数
@app.route("/")
def show_static():
return render_template("static.html")

# 运行应用程序
if __name__ == '__main__':
app.run(debug=True, port=5050)

在 templates 目录下创建 static.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>静态文件</title>
<link rel="icon" href="{{ url_for('static', filename='logo.jpg') }}">
</head>
<body>
<h1>静态文件</h1>
</body>
</html>
<script type="text/javascript"></script>

启动服务,浏览器中访问 http://127.0.0.1:5050/,即可在浏览器标签页上看到这个图标。

添加图片

为了让页面不那么单调,可以在页面中添加图片。

可以在 static 目录下面创建一个子文件夹 images,把图片都放到这个文件夹里。

创建子文件夹并不是必须的,只是为了更好的组织同类文件。同样的,如果有多个 CSS 文件,也可以创建一个 css 文件夹来组织他们。

下面在 static.html 中添加图片,注意文件路径要写正确。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>静态文件</title>
<link rel="icon" href="{{ url_for('static', filename='logo.jpg') }}">
</head>
<body>
<h1>
<img alt="branch" src="{{ url_for('static', filename='images/branch.gif') }}">
霍格沃兹
</h1>
<div>
<img alt="Gryffindor" src="{{ url_for('static', filename='images/Gryffindor.png') }}">
<img alt="hogwarts" src="{{ url_for('static', filename='images/hogwarts.jpg') }}">
</div>
</body>
</html>
<script type="text/javascript"></script>

保存文件,刷新浏览器页面即可看到页面中展示了对应的图片。

添加 CSS 文件

虽然添加了图片,但是页面排版还不好看,因为现在还没有添加 CSS 定义。

下面在 static 目录下创建一个 CSS 文件 style.css。

body {
margin: auto;
max-width: 800px;
font-size: 14px;
font-family: Helvetica, Arial, sans-serif;
}

/* 霍格沃兹学院 */
.hogwarts {
display: auto;
margin: 0 auto;
height: 300px;
}

/* 小图片 */
.pic {
width: 100px;
}

接着在 static.html 页面的 标签内引入这个 CSS 文件。

<head>

<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>

最后要为对应的元素设置 class 属性值,以便和对应的 CSS 定义关联起来:

templates/index.html:添加 class 属性

<body>
<h1>
<img alt="branch" class="pic" src="{{ url_for('static', filename='images/branch.gif') }}">
霍格沃兹
</h1>
<div>
<img alt="Gryffindor" class="pic" src="{{ url_for('static', filename='images/Gryffindor.png') }}">
<img alt="hogwarts" class="hogwarts" src="{{ url_for('static', filename='images/hogwarts.jpg') }}">
</div>
</body>

刷新浏览器,可以看到页面中的图片按照 CSS 样式的定义进行展示。

 

标签:10,文件,静态,添加,static,CSS,图片
From: https://www.cnblogs.com/csfsz/p/17842419.html

相关文章

  • 学习笔记10
    一、苏格拉底挑战二、遇见的问题......
  • 信息安全系统设计与实现学习笔记 10
    信息安全系统设计与实现学习笔记10一、知识点归纳以及自己最有收获的内容1.知识点归纳第12章块设备I/O和缓冲区管理块设备I/O缓冲区I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时,它首先在缓冲区缓......
  • 【5.0】Python中级之文件操作
    【一】文本处理引入应用程序运行过程中产生的数据最先都是存放于内存中的若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统......
  • 文件管理
    1.了解目录结构 1.1文件目录 文件目录是指在计算机操作系统中用于组织和存储文件的一种结构化方式。它是由文件夹(也称为目录)和文件组成的层次结构。在Linux系统中,文件目录采用了树形结构,由根目录(/)开始,每个目录下可以包含子目录和文件。常见的文件目录结构如下:/:根目录,是整......
  • 选择工作簿中所有工作表中的A1:D10
    SubSheet3_按钮1_Click()choice2EndSubSubchoice2()ThisWorkbook.Sheets.Select'组合工作表'ActiveSheet.[A1:D10].Select'选择区域'EndSubThisWorkbook工作簿ThisWorkbook.Sheets所有工作表ActiveSheet激活的工作表[A1:D10]区域 ......
  • 10个令人惊叹的Go语言技巧,让你的代码更加优雅
    10个令人惊叹的Go语言技巧,让你的代码更加优雅原创 TimLiu 爱发白日梦的后端 2023-11-1808:50 发表于广东收录于合集#go95个爱发白日梦的后端专注Go语言领域的发展,学习成为更牛逼的架构师,日常分享Go语言、架构、软件工具的使用。129篇原创内容公众......
  • 20211104李宜时学习笔记10
    块设备I/O和缓冲区管理学习笔记1.块设备I/O缓冲区定义与作用:解释块设备I/O缓冲区的基本概念,及其在数据传输中的作用。工作原理:描述数据如何从应用程序通过缓冲区传输到块设备,反之亦然。2.UNIXI/O缓冲区管理算法基本算法:介绍UNIX系统中用于管理I/O缓冲区的常见算法。效......
  • 2023-2024-1 20231410刘珈岐 《计算机基础与程序设计》第8周学习总结
    2023-2024-120231410刘珈岐《计算机基础与程序设计》第8周学习总结作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08))这个作业的目标自学教材《......
  • 2023-2024-1 20231310《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程<班级的链接>https://www.cnblogs.com/rocedu/p/9577842.html#FHML这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08这个作业的目标自学计算机科学概论第9章,《C语言程序设计》第7章作业正文https://www.c......
  • 第十一周学习笔记(学习笔记10)
    〇、思维导图一、知识总结解释块设备I/O的原理和I/O缓冲的优点介绍Unix的缓冲区管理算法利用信号量设计新的缓冲区管理算法,以提高I/O缓冲区的缓存效率和性能介绍简单的PV算法及其特点基本概念读写普通文件的算法依赖于两个关键操作,即get_block和put_block,这两个操作将磁......