在自定义base.html的基础上继续工作。
主页templates/index.html
{% extends 'base.html' %}
{% block page_content %}
<h1>hello world!</h1>
{% endblock %}
其他页面templates/user.html
{% extends 'base.html' %}
{% block page_content %}
<h1>hello {{ name }}</h1>
{% endblock %}
错误页面templates/404.html
{% extends 'base.html'%}
{% block page_content %}
<h1>页面不见了</h1>
{% endblock %}
错误页面templates/5500.html
{% extends 'base.html' %}
{% block page_content %}
<h1> 内部错误</h1>
{% endblock %}
在hello.py中定义相应的视图函数,此时hello.py变成如下模样
from flask import Flask, render_template
from flask.ext.bootstrap import Bootstrap
from flask.ext.script import Manager
app = Flask(__name__)
bootstrap = Bootstrap(app)
manager = Manager(app)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/user/<name>')
def uesr(name):
return render_template('user.html',name=name)
@app.errorhandler(404):
def page_not_found(e):
return render_template('404.html'), 404
@app.errorhandler(500):
def internal_server_error(e):
return render_template('500.html'), 500
if __name__ == '__main__':
app.debug = True
manager.run()
注意
- 由于加载manager,所以启动方式改为Python hello.py runserver 后面可以接多个参数。
- errorhandler是flask专门处理错误信息的装饰器
- 这里的页面过于简陋,可以自己根据官方文档进行美化