原文:http://www.catonlinepy.tech/
声明:原创不易,未经许可,不得转载
1. 你将学会什么
通过学习第二天的内容,你将会对模板有所了解,并且知道为什么要使用模板,以及使用模板有什么好处。这一天的学习内容涉及到的代码都会托管到github上,猫姐再次强调,在学习本课内容时一定要自己尝试手敲代码,遇到问题再到github上去查看代码,如果实在不知道如何去解决问题,可以在日志下面留言说明具体情况。
2. 什么是模板
视图函数主要有两个作用,一个是处理业务逻辑,另一个是给用户返回相关内容。在大型应用中,如果把业务逻辑和返回响应内容放在一起的话,这样会增加代码的复杂度,并且也不好维护。所以模板它就承担了视图函数的另外一个作用:返回响应内容。这样就可以实现业务逻辑和响应内容的分离,将所有的html代码都存放到模板中,而视图函数中只需要专心处理好业务逻辑即可。
下面猫姐通过一个简单的例子来展示为什么要引入模板,以下是这个例子的代码组织结构:
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary$ tree
.
├── day2
│ ├── run.py
│ └── template_demo
│ ├── __init__.py
│ └── routes.py
└── README.md
首先来建立第二天的代码目录,与第一天的课程类似,先激活虚拟环境miao_venv,创建方法都是一样的:
# 进入到虚拟环境目录,激活虚拟环境
maojie@Thinkpad:~/flask-plan/$source miao_venv/bin/activate
# 再到flask-course-primary目录下创建第二天的课程day2目录
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary$ mkdir day2
# 进入day2目录
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary$ cd day2
# 新建template_demo目录
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary/day2$ mkdir template_demo
# 进入到template_demo目录
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary/day2$ cd template_demo/
# 在template_demo目录中新建__init__.py文件
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary/day2/template_demo$ touch __init__.py
# 在template_demo包中新建routes.py路由文件
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary/day2/template_demo$ touch routes.py
# 在day2目录下新建run.py文件
(miao_venv) maojie@Thinkpad:~/flask-plan/flask-course-primary/day2/$ touch run.py
在template_demo包的__init__.py中输入如下代码:
# 以下是__init__.py文件中的代码,我们逐行进行解释
from flask import Flask # 从flask包中导入Flask类
app = Flask(__name__) # 通过Flask类创建一个app实例
from template_demo import routes # 从template_demo包中导入routes文件里的所有代码
在routes.py文件中输入如下代码,包括响应内容中的HTML代码:
# 从template_demo包中导入app实例
from template_demo import app
@app.route('/')
def index():
user = {'username':'猫姐'} # 建立一个user字典