flask学习笔记
Posted 沙发垫的猫先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask学习笔记相关的知识,希望对你有一定的参考价值。
,接下来要学习的是具体的使用方法。
模板
Jinjia2模板引擎
变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
from flask import Flask, render_template from flask import request app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/user/<name>') def user(name): return render_template('user.html', name=name)% user.html中的{{ name }}变量赋值为name值 if __name__ == '__main__': app.run(debug=True)
|
另外,Jinjia2还提供了过滤器实现常用的修改。使用方法如下
1
|
Hello,{{ name|capitalize }}
|
常见过滤器有以下几种
对于safe处理器。默认情况下,出于安全考虑,Jinja2会转义所有变量。例如,如果一个变量的值为'<h1>Hello</h1>'
,Jinja2会将其渲染成'<h1>Hello</h1>'
,浏览不会对这个变量进行解释。很多情况下需要显示变量中存储的HTML代码,这时就可使用safe过滤器,保证变量中的html代码可以正常的解析出来。
控制结构
条件控制
1 2 3 4 5
|
{% if user %} Hello, {{ user }}! {% else %} Hello, Stranger! {% endif %}
|
for 循环
1 2 3 4 5
|
<ul> {% for comment in comments %} <li>{{ comment }}</li> {% endfor %} </ul>
|
宏(函数)
1 2 3 4 5 6 7 8 9 10
|
{% macro render_comment(comment) %} <li>{{ comment }}</li> {% endmacro %} //定义了render_comment宏,对comment进行comment处理(这个奇怪的对应关系23333) <ul> {% for comment in comments %} {{ render_comment(comment) }} {% endfor %} </ul>
|
甚至还可以模块化,将宏保存在单独的文件中,使用如下语句:
1 2 3 4 5 6
|
{% import 'macros.html' as macros %} <ul> {% for comment in comments %} {{ macros.render_comment(comment) }} {% endfor %} </ul>
|
简直和python的模块使用方法一模一样。
需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,避免多次键入。代码如下:
1
|
{% include 'common.html' %}
|
或者使用继承的方式,类似于类继承。创建一个base.html为基模板。
1 2 3 4 5 6 7 8 9 10 11
|
<html> <head> {% block head %} <title>{% block title %}{% endblock %} - My Application</title> {% endblock %} </head> <body> {% block body %} {% endblock %} </body> </html>
|
这里面的block定义的标签可以在衍生模板里随意更改。下面是衍生模板举例:
1 2 3 4 5 6 7 8 9 10
|
{% extends "base.html" %} {% block title %}Index{% endblock %} {% block head %} {{ super() }} <style> </style> {% endblock %} {% block body %} <h1>Hello, World!</h1> {% endblock %}
|
以上是关于flask学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
flask学习笔记(-Web 表单)
flask学习笔记(-数据库)
flask学习笔记(-数据库)
flask学习笔记(-操作数据库)
Flask 源代码阅读笔记
Python学习笔记_05:使用Flask+MySQL实现用户登陆注册以及增删查改操作