美文网首页
Flask第二天

Flask第二天

作者: wuhf06 | 来源:发表于2017-01-03 16:00 被阅读0次

静态文件

  动态的 web 应用同样需要静态文件。CSS 和 JavaScript 文件通常来源于此。理想情况下, 你的 web 服务器已经配置好为它们服务,然而在开发过程中 Flask 能够做到。 只要在你的包中或模块旁边创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。

给静态文件生成 URL ,使用特殊的 'static' 端点名:url_for('static', filename='style.css'),这个文件应该存储在文件系统上称为 static/style.css。

模板

jinjia2为了防止跨站点脚本攻击,出于安全考虑将参数值作为字符串,例如:
app.py

def hello_world():
    return render_template('index.html', title='<h1>Welcome!</h1>')

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{{ url_for('static',filename='site.css') }}">
</head>
<body>
    {{ title }}
    <a href="{{ url_for('.services') }}">services</a>
    <a href="{{ url_for('.about') }}">about</a>
</body>
</html>
Paste_Image.png

如果要显示正常结果,需做如下修改:

{% autoescape false %}
    {{ title }}
{% endautoescape %}

或者:

{{ title|safe }}

则结果显示为:

Paste_Image.png

第二种方法就是Flask的Jinja2模板引擎 — 过滤器,也可以自定义markdown过滤器:
demo01.py

@app.template_filter('md')
def markdown_to_html(txt):
    from markdown import markdown
    return markdown(txt)

@app.route('/')
def index():
    response = make_response(render_template('index.html', title='<h1>Welcome!</h1>',body = '##header2'))

index.html
···
{{ body | md | safe }}
···

模板的继承--包含和宏

在模板中定义好html的格式,在子页面中重写

相关文章

网友评论

      本文标题:Flask第二天

      本文链接:https://www.haomeiwen.com/subject/gmwwvttx.html