Frontend Template

Use HTML template to render the page

MVC

  • Controller: 负责业务逻辑,比如检查用户名是否存在,取出用户信息等等
  • View: 负责显示逻辑,通过简单地替换一些变量,View最终输出的就是用户看到的HTML
  • Model: Model是用来传给View的,这样View在替换变量的时候,就可以从Model中取出相应的数据

rewrite

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def home():
    return render_template('home.html')

@app.route('/signin', methods=['GET'])
def signin_form():
    return render_template('form.html')

@app.route('/signin', methods=['POST'])
def signin():
    username = request.form['username']
    password = request.form['password']
    if username=='admin' and password=='password':
        return render_template('signin-ok.html', username=username)
    return render_template('form.html', message='Bad username or password', username=username)

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

Flask use render_template() to render template. Flask default template is jinja2

除了Jinja2,常见的模板还有:

Mako:用<% ... %>和${xxx}的一个模板;

Cheetah:也是用<% ... %>和${xxx}的一个模板;

Django:Django是一站式框架,内置一个用{% ... %}{{ xxx }}的模板。