flask render_ template用法
首先我们在templates文件夹建立一个html文件,我们可以使用Flask对象app的send_static_file方法,使视图函数返回一个静态的html文件,但现在我们不使用这种方法,而是使用flask的render_template函数,它功能更强大。
从flask中导入render_template。
flask传递参数
要使用模板,在render_template参数中以key=value形式传入变量,在html中使用{
{key}}来显示传入的变量
py文件代码
@app.route('/')
person = {
'dev':'我叫xx,今年22岁。毕业于xx大学,想求职公司的软件设计师职位。',
'description' : '本人有比较强的自我学习能力,学习知识速度比较快。性格比较积极乐观,善于与其他人交流沟通。',
'skill':'精通面向对象编程和计算相关的数学。精通java和python,学习过对Android方面的开发',
'interests1':'小型独立编码项目(半专业),音乐,视频,大型多人在线游戏。',
'work':'一个Android的无障碍应用程序,一个我随意使用的博客平台的桌面主题,以及一个摄影项目,详细描述了城市环境中自然和人工的相互作用。',
'contact':[
{
'way':'电话',
'lk':'111111'
},
{
'way':'邮箱',
'lk':'2222@qq.com'
}
],
'experiences' : [
{
'title' : 'python爬虫',
'company': 'xx国际有限公司',
'description' : '对网页的视频信息进去爬取,并对爬取的数据进行分析,查看热门视频数据与什么相关.',
'timeframe' : 'July 2018 - November 2019'
},
{
'title' : '购物商城',
'company': 'xx国际有限公司',
'description' : '添加登录注册系统和商品添加 ',
'timeframe' : 'February 2017 - Present'
},
{
'title' : '购票系统',
'company': 'xx国际有限公司',
'description' : '添加购票信息和对机票的添加删除',
'timeframe' : 'October 2015 - October 2016'
}
]
}
def cv(person=person):
return render_template('index1.html', person=person)
html文件
引用person这个对象中的属性。
<h1>
<div class="hex moved"></div><span>自我介绍</span></h1>
<div class="subtext" id="main">
<p>{
{
person.dev }}</p>
<p>{
{
person.description }}</p>
</div>
<h2>
<div class="hex"></div><span>技能</span></h2>
<div class="subtext coll">
{
{
person.skill }}
</div>
<h2>
<div class="hex"></div><span>兴趣爱好</span></h2>
<div class="subtext coll">
{
{
person.interests1}}
</div>
模板中还可以使用if else和for in控制语句,与变量使用{ { }}不同,控制语句要放在{% %}里,例如前文的contents传入一个list:
模板中还可以使用if else和for in控制语句,与变量使用{
{
}}不同,控制语句要放在{
% %}里,例如前文的contents传入一个list:
contents=[i for i in range(10)]
项目中html文件使用实例
<h2>
<div class="hex"></div><span>工作经验</span></h2>
<div class="subtext coll">
{
% for experience in person.experiences %}
<div class="item">
<div class="meta">
<div class="upper-row">
<h3 class="job-title">{
{
experience.title }}</h3>
<div class="time">{
{
experience.timeframe }}</div>
<