跟ChatGPT学Flask网络编程(6) — 静态文件

这篇文章中我们来看一下如何管理网站的静态文件。

:什么是静态文件?

ChatGPT:静态文件是指在web应用程序中,不会动态生成或改变内容的文件,包括样式表文件(如CSS文件)、脚本文件(如JavaScript文件)、图片文件等。相对于动态生成的内容,静态文件的内容是固定的,因此可以缓存,减少网络传输和服务器负担。在Flask中,静态文件一般存储在应用程序目录的static文件夹中。

:如何在flask中使用css文件

ChatGPT: 要在Flask中使用CSS文件,需要在HTML文件中通过link标签引用CSS文件。

  1. 首先,在Flask项目的根目录中创建一个名为“static”的文件夹,用于存放静态文件,例如CSS和JavaScript文件。
  2. 在“static”文件夹中创建一个名为“css”的文件夹,并在其中添加你的CSS文件,例如“style.css”。
  3. 在HTML文件中使用link标签引用CSS文件,如下所示:

<!DOCTYPE html>
<html>
<head>
  <title>My Flask App</title>
  <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
  <h1>Hello World!</h1>
</body>
</html>

:编写一个css文件,将主页背景变成天蓝色,字体变为红色

ChatGPT:可以在静态文件夹static中新建一个CSS文件,例如style.css,并添加以下代码:

body {
  background-color: skyblue;
  color: red;
}

文件结构如下:

图片

网页运行结果如下:

图片

:如何插入图片?

ChatGPT: 在HTML中插入图片可以使用标签。具体步骤如下:在Flask应用程序的static目录下创建一个名为images的子目录,将图片文件放置其中。在HTML模板中使用标签引用该图片,如下所示:

<img src="{{ url_for('static', filename='images/my_image.png') }}" alt="My Image">

其中,url_for()函数用于生成指向静态文件的URL,第一个参数是指定静态文件的endpoint(这里为’static’),第二个参数是指定文件路径(这里为’images/my_image.png’)。需要注意的是,图片文件的路径大小写要与实际文件名一致。此外,标签还可以设置其他属性,例如width和height来指定图片的尺寸,alt属性用于指定在图片无法显示时的替代文本。另外,也可以使用CSS样式表中的background-image属性插入背景图片,具体方法可以参考CSS的相关教程。

:添加width和height指定图片尺寸

ChatGPT:要指定图片的尺寸可以在标签中添加width和height属性。例如:

<img src="{{ url_for('static', filename='images/myimage.jpg') }}" width="200" height="150">

这里的width和height属性都设置为200和150,表示图片的宽度和高度分别为200px和150px。你可以根据实际需要调整这些值。

网页运行结果:

图片

我:如何添加javascript?

ChatGPT:  要在 Flask 应用程序中添加 JavaScript,可以通过以下步骤完成:

<script src="{{ url_for('static', filename='script.js') }}"></script>

 3. 在 JavaScript 文件中编写代码。例如,以下代码在页面加载时弹出一个警告框:

window.onload = function() { alert("Hello, world!");}

注意:要让 JavaScript 生效,必须将 script.js 文件保存在 Flask 应用程序的 static 目录下,并在 HTML 模板文件中引用该文件。同时,要确保 JavaScript 文件的路径是正确的,可以使用 url_for 函数来生成文件路径。

更新后的文件结构如下:

图片

网页运行效果,弹出对话框:

图片

:如何插入视频文件?

ChatGPT:在HTML中,可以通过<video>标签来插入视频文件。首先,需要将视频文件放在项目的静态文件夹中,例如static/videos/。然后,使用以下代码将视频插入网页中:

<video width="640" height="360" controls>
  <source src="{{ url_for('static', filename='videos/myvideo.mp4') }}" type="video/mp4">
  Your browser does not support the video tag.
</video>

其中,widthheight属性指定了视频播放器的宽度和高度,controls属性可以让用户控制视频播放。<source>标签指定了视频文件的路径和格式,type属性可以指定视频文件的MIME类型。{{ url_for(...) }}可以根据视频文件在静态文件夹中的路径,生成正确的URL。如果用户的浏览器不支持HTML5视频标签,将会显示<video>标签中间的文本内容。

网页运行结果如下:

图片

小结:

1、网站的静态文件是指图片,视频,CSS格式,JavaScript等资产。

2、静态文件需要储存在项目文件夹下的static目录中。

3、需要在模板文件中引用。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注