写点什么

flask 框架关于静态文件及其模板生成

作者:黎燃
  • 2022 年 5 月 25 日
  • 本文字数:792 字

    阅读完需:约 3 分钟

静态文件主要包括 css,JavaScript 等脚本文件、图片等,在加载文件的时候主要是用 url_for 方法。语法 url_for('文件夹', filename='调用文件路径及扩展名')对于网页来说,静态文件是不可避免的。即使简洁如 Google,其主页也包含有图片。静态文件通常是 css 文件、js 文件以及图片、视频、音频文件等。

静态文件

Web 程序中常常需要处理静态文件,在 Flask 中需要使用 url_for 函数并指定 static 端点名和文件名。在下面的例子中,实际的文件应放在 static/文件夹下。


url_for('static', filename='style.css')
复制代码

模板生成

Flask 默认使用 Jinja2 作为模板,Flask 会自动配置 Jinja 模板,所以我们不需要其他配置了。默认情况下,模板文件需要放在 templates 文件夹下。


使用 Jinja 模板,只需要使用 render_template 函数并传入模板文件名和参数名即可。


from flask import render_template
@app.route('/hello/')@app.route('/hello/<name>')def hello(name=None): return render_template('hello.html', name=name)
复制代码


相应的模板文件如下。


<!doctype html><title>Hello from Flask</title>{% if name %}  <h1>Hello {{ name }}!</h1>{% else %}  <h1>Hello, World!</h1>{% endif %}
复制代码

日志输出

Flask 为我们预配置了一个 Logger,我们可以直接在程序中使用。这个 Logger 是一个标准的 Python Logger,所以我们可以向标准 Logger 那样配置它,详情可以参考官方文档或者我的文章 Python 日志输出。


app.logger.debug('A value for debugging')app.logger.warning('A warning occurred (%d apples)', 42)app.logger.error('An error occurred')
复制代码

处理请求

在 Flask 中获取请求参数需要使用 request 等几个全局对象,但是这几个全局对象比较特殊,它们是 Context Locals ,其实就是 Web 上下文中局部变量的代理。虽然我们在程序中使用的是全局变量,但是对于每个请求作用域,它们都是互不相同的变量。理解了这一点,后面就非常简单了


发布于: 刚刚阅读数: 4
用户头像

黎燃

关注

前端工程师 2022.05.06 加入

专注学习分享前端知识。

评论

发布
暂无评论
flask框架关于静态文件及其模板生成_5月月更_黎燃_InfoQ写作社区