Flask 模板

Flask依赖于jinja2模板引擎:https://github.com/mitsuhiko   它的官方主页为:http://jinja.pocoo.org/

      为了使Py与HTML独立分开,易于维护而引入模板。

      Html要放在templates文件夹里

      例一:

      index.html:

      ……

      <h1>{{ content }}</h1>

      ……

 

      from flask import Flask, render_template

      app = Flask(__name__)

      @app.route(‘/’)

      def hello_world():

content = ‘你好’   #渲染的数据要从后端写入模板,而不是直接#写在html上

           return render_template(‘index.html’,content = content)

      if __name__ == ‘__main__’:

           app.run()

           

      例二:

      models.py:

      class User(object):

           def __init__(self, user_id, user_name):

                 self.user_id = user_id

                 self.user_name = user_name

 

user_index.html:

……

<h1>hello {{ user.user_name }}</h1>

……

 

 

flaskapp.py:

from flask import Flask, render_template

from models import User

app = Flask(__name__)

@app.route(‘/user’)

def user_index():

  user = User(1, ‘luchangyin’)

  return render_template(‘user_index.html’, user= user)

if __name__ = ‘__main__’:

  app.run()

 

@app.route(‘/query_user/<user_id>’)  #有条件

def query_user(user_id):

  user = None

  if int(user_id) ==1:

       user = User(1, ‘feiniuchongtian’)

  return render_template(‘user_id.html’, user= user)

 

@app.route(‘/users’)

def user_list():

  users = []

  for  i in range(1,11):

       user = User(i, ‘feiniuchongtian’+str(i))

       users.append(user)

  return render_template(‘user_list.html’, users= users)

 

user_id.html:

……

<body>

  {% if user %}

       Hello {{ user.user_name }}

  {% else %}

       No this user

  {% endif %}

</body>

……

 

user_list.html’:

……

<body>

  {% for user in users %}

  {{ user.user_id }} – {{ user.user_name }}<br>

  {% endfor %}

</body>

……

 

模板的继承

      base.html(基类):

      ……

      <body>

      <div>

           <h1>Header 飞牛</h1>

      </div>

      {% block content %}

      {% endblock %}

      <div>

  <h1>Footer 飞牛</h1>

</div>

      </body>

      ……

 

one_base.html(子类):  <!—无需写其它多余的标签-->

{% extends “base.html” %}  <!—继承父类-->

{% block content %}

  <h2>这是第一页</h2>

{% endblock %}

posted @   飞牛冲天  阅读(140)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示