Flask路由中使用正则表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 
  | from werkzeug.routing import BaseConverter class RegexConverter(BaseConverter):     def __init__(self, url_map, *item):         super(RegexConverter, self).__init__(url_map)         self.regex = item[0] app.url_map.converters['regex'] = RegexConverter @app.route('/user/<regex("[a-z]{3}"):user_name>') def user(user_name):     return 'User %s' % user_name 
  | 
 
多个url指向同一个视图
1 2 3 4 
  | @app.route('/projects/') @app.route('/projects2/') def projects():     return 'The project page' 
  | 
 
注意:多个路由指向同一视图时,顺序是先从最外层的装饰器路由开始,一旦匹配到路由,就马上执行视图函数,下面的装饰器就不再执行了.
使用Manager运行flask应用程序
自定义模板过滤器
自定义markdown过滤器
1 2 3 4 
  | @app.template_fiter('md') def markdown_to_html(txt):     from markdown import markdown     return markdown(txt) 
  | 
在模版中调用python函数
1 2 3 4 5 6 7 8 
  | @app.context_processor def inject_methods():     return dict(read_md=read_md) def read_md(file_name):     with open(filename) as md_file:         content = reduce(lambda x,y: x+y, md_file.readlines())     return content.decode('utf-8') 
  | 
 
过滤器和全局方法配合使得页面更加灵活
模版继承/包含与宏
  画直线