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')
|
过滤器和全局方法配合使得页面更加灵活
模版继承/包含与宏
画直线