使用flask搭建网站——1.使用Jinja2模板引擎

web分为前端和后端,而模板就属于前端,也就是显示给用户来看的页面。
当要制作的网站都多个页面时,为了保持同一的风格,就会用到模板。

渲染模板

渲染是指把从服务器获取的信息呈现到web浏览器上的过程(个人理解)。
flask有自己的渲染机制,所以在使用Jinja2模板之前要先导入render_template

from flask import Flask, render_template

在路由函数的返回值处就可以调用render_template()函数渲染页面了

@app.route('/')
def hello_world():
    return 'Hello World!'


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

这里为了遵守PEP8 Python编程规范,每个函数之间要空两行。(为什么要遵守这种规范,因为Python的代码块不使用{}来分隔,而是使用代码行缩进进行分块,这样很容造成错误)

在定义好了路由函数后,就要创建一个user.html页面,内容随便写就行,然后再浏览器里打上访问路径即可,例如:

http://127.0.0.1:5000/user

创建基础模板

页面之间是允许存在继承关系的,所以我们可以定义一个基础模板,它的作用一般是定义网站的风格,也有人管这叫皮肤,哈哈。
先创建一个base.html文件,并定义布局,在flask中叫 “块”(block)。




    
    {% block head %}
        {% block title %}{% endblock %} - My Application
    {% endblock %}


    {% block body %}
    {% endblock %}


使用过其他后台语言的应该就知道了,{%%}中间放的python代码,这里使用{% block name%}{% endblock %}结构来构建块。
name,是你给块起的名字,在子模板(也有叫衍生模板的)中向其中添加内容,如果少了某个块页面会有问题,所以一定注意布局。

子模板

基础模板有了,子模板继承基础模板就可以实现统一风格的网页了。修改一下user.html文件。

{% extends "bootstrap/base.html" %}

{% block title %}艺品天成{% endblock %}

{% block navbar %}

{% endblock %}

{% block content %}
{% endblock %}

再看看图解


使用flask搭建网站——1.使用Jinja2模板引擎_第1张图片
image.png

自定义错误页面

先说一下错误页面,常见的有两种,404和500。
404:代表没找到请求的资源路径。
500:代表有未处理的异常。

通过继承基础模板,创建一个404.html页面,用来表示访问出错的页面。

{% extends "base.html" %}

{% block title %} Flasky - Page Not Found{% endblock %}

{% block body %}
    
{% endblock %}

在body块中可以自定义页面内容了。

还有一个问题,虽然404页面做完了,但是服务器怎么知道是不是出错了呢,需要在后端代码中添加一个处理错误的路由函数。


使用flask搭建网站——1.使用Jinja2模板引擎_第2张图片
image.png

你可能感兴趣的:(使用flask搭建网站——1.使用Jinja2模板引擎)