學習Flask相關知識點

一、Flask提供的render_tamplate函數吧Jinja2模板引擎集成到了程序中。render_tamplate函數第一個參數是模板的文件名。隨後的參數都是鍵值對,標識模板中變量對應的真實值html

# -*- coding:utf-8-*-

from flask_script import Manager
from flask import Flask, render_template

app = Flask(__name__)
anager = Manager(app)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('user/name')
def user(name):
    return render_template('user.html', name=name)


if __name__ == '__main__':
    app.run(debug=True)

*******************************華麗分割線*******************************flask

二、Jinja2能識別全部類型的變量,過濾器名稱添加在變量名以後,中間使用豎線分隔,例如:api

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>hellom,{{ name | capitalize }}</h1>
</body>
</html>

capitalize:把值的首字轉換成大寫,其餘字母轉換成小寫app

Jinja2變量過濾器以下:函數

safe               渲染值時不轉義spa

capitalize      把值的首字轉換成大寫,其餘字母轉換成小寫debug

lower            把值轉換成小寫形式server

upper           把值轉換成大寫形式htm

title              把值中每一個單詞的首字母都轉換成大寫繼承

trim              把值的首尾空格都去掉

striptags      渲染以前把值中全部的HTML標籤都刪掉

*******************************華麗分割線*******************************

三、須要在多處重複使用的模板代碼片斷能夠寫入單獨的文件,再包含在全部的模板中,以免重複:

{%  include 'XXXX.html'  %}

另外一種重複使用代碼的強大方式是模板繼承,它相似於Python代碼中的繼承

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% include 'index.html' %}
</body>
</html>

*******************************華麗分割線*******************************

四、自定義錯誤頁面

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404


@app.errorhandler(500)
def internal_server_error(e):
    return render_template('500.html'), 500

*******************************華麗分割線*******************************

相關文章
相關標籤/搜索