Flask从入门到精通之静态文件

  Web 程序不是仅由Python 代码和模板组成。大多数程序还会使用静态文件,例如HTML代码中引用的图片、JavaScript 源码文件和CSS。

  在前面的章节中,我们曾检查hello.py 程序的URL 映射时,其中有一个static 路由。这是因为对静态文件的引用被当成一个特殊的路由,即/static/<?filename>。例如,调用url_for(‘static‘, filename=‘css/styles.css‘, _external=True) 得到的结果是http://localhost:5000/static/css/styles.css。

  默认设置下,Flask 在程序根目录中名为static 的子目录中寻找静态文件。如果需要,可在static 文件夹中使用子文件夹存放文件。服务器收到前面那个URL 后,会生成一个响应,包含文件系统中static/css/styles.css 文件的内容。

  下面的例子展示了如何在程序的基模板中放置favicon.ico 图标。这个图标会显示在浏览器的地址栏中。

{% block head %}
{{ super() }}
<link rel="shortcut icon" href="{{ url_for(‘static‘, filename=‘favicon.ico‘) }}" type="image/x-icon">
<link rel="icon" href="{{ url_for(‘static‘, filename=‘favicon.ico‘) }}" type="image/x-icon">
{% endblock %}

  图标的声明会插入head 块的末尾。注意如何使用super() 保留基模板中定义的块的原始内容。

  

原文地址:https://www.cnblogs.com/senlinyang/p/8376022.html

时间: 2024-10-08 13:13:12

Flask从入门到精通之静态文件的相关文章

Flask 学习(四)静态文件

Flask 学习(四)静态文件 动态 web 应用也需要静态文件,一般是 CSS 和 JavaScript 文件.理想情况下你的服务器已经配置好提供静态文件的服务. 在开发过程中, Flask 也能做好这个工作. 静态文件引用 我们先来看下普通的 html 引用静态文件,如 css(js也同样,就不多加示例了),以下为一简单实例,直接打开html: flask 处理 —— static 若直接将该html 当成 flask 模板,相对路径自然就失效了,静态文件将不会被成功读取. 那在flask中

Flask从入门到精通之flask程序入门

初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代码构建 from flask import Flask app = FLask(__name__) Flask类的构造函数只有一个必须指定的参数,即程序主模块或则包的名称..在大多数程序中,Python 的__name__ 变量就是所需的值.将构造函数的name 参数传给Flask 程序,这一点可能

Flask从入门到精通之Flask-Bootstrap的使用

Bootstrap(http://getbootstrap.com/)是Twitter 开发的一个开源框架,它提供的用户界面组件可用于创建整洁且具有吸引力的网页,而且这些网页还能兼容所有现代Web 浏览器. 要想在程序中集成Bootstrap,显然要对模板做所有必要的改动.不过,更简单的方法是使用一个名为Flask-Bootstrap 的Flask 扩展,简化集成的过程.Flask-Bootstrap 使用pip安装: pip install flask_bootstrap Flask 扩展一般

Flask从入门到精通之自定义错误界面

如果你在浏览器的地址栏中输入了不可用的路由,那么会显示一个状态码为404 的错误页面.现在这个错误页面太简陋.平庸,而且样式和使用了Bootstrap 的页面不一致. 像常规路由一样,Flask 允许程序使用基于模板的自定义错误页面.最常见的错误代码有两个:404,客户端请求未知页面或路由时显示:500,有未处理的异常时显示.为这两个错误代码指定自定义处理程序的方式如下: @app.errorhandler(404) def page_not_found(e): return render_te

Flask从入门到精通之使用Flask-Migrate实现数据库迁移

在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库.仅当数据库表不存在时,Flask-SQLAlchemy 才会根据模型进行创建.因此,更新表的唯一方式就是先删除旧表,不过这样做会丢失数据库中的所有数据.更新表的更好方法是使用数据库迁移框架.源码版本控制工具可以跟踪源码文件的变化,类似地,数据库迁移框架能跟踪数据库模式的变化,然后增量式的把变化应用到数据库中. SQLAlchemy 的主力开发人员编写了一个迁移框架,称为Alembic(https://alembic

Flask从入门到精通之大型程序的结构一

尽管在单一脚本中编写小型Web 程序很方便,但这种方法并不能广泛使用.程序变复杂后,使用单个大型源码文件会导致很多问题.不同于大多数其他的Web 框架,Flask 并不强制要求大型项目使用特定的组织方式,程序结构的组织方式完全由开发者决定.在本节,我们将介绍一种使用包和模块组织大型程序的方式. 一.项目结构 Flask 程序的基本结构如下所示: |-blogs |-app/ |-templates/ |-static/ |-main/ |-__init__.py |-errors.py |-fo

Flask从入门到精通之flask扩展

Flask被设计成可扩展形式,因此并没有提供一些重要的功能,比如数据库和用户认证,所以开发者可以自由选择最适合程序的包,或者按需求自行开发.社区成员开发了大量不同用途的扩展,如果这还不能满足需求,你还可使用所有Python 标准包或代码库.为了让你知道如何把扩展整合到程序中,接下来我们将在hello.py 中添加一个扩展,使用命令行参数增强程序的功能. 使用Flask-Script支持命令行选项 Flask 的开发Web 服务器支持很多启动设置选项,但只能在脚本中作为参数传给app.run()函

Flask从入门到精通之Flask-Moment本地化日期和时间

Moment.js 是一个简单易用的轻量级JavaScript日期处理类库,提供了日期格式化.日期解析等功能.它支持在浏览器和NodeJS两种环境中运行.此类库能够 将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数.Flask-Moment是一个集成moment.js到Jinja2模板的Flask扩展.安装Flask-Moment的方式如下: pip install Flask-Moment 初始化Flask-Moment from flask

flask静态文件遇到的坑

最近做一个项目,因为前端不厉害所以只单纯写了html 不做任何css js   就没有引入 , 结果差不多了 要弄页面了 发现无法导入js  css等静态文件. 以为是代码问题   研究2小时,无果 重新又写了几行代码 from flask import Flask,render_template app = Flask(__name__) @app.route('/') def index(): return render_template('test.html') if __name__==