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 }}
的模板。