过滤

Jinjia2支持过滤
image.png

使用Flask-Bootstrap集成

pip install flask-bootstrap

使用的时候,需要先做如下操作

  1. from flask_bootstrap import Bootstrap
  2. # ...
  3. bootstrap = Bootstrap(app)

然后在html文件中,直接引入即可

  1. {% extends "bootstrap/base.html" %}
  2. {% block title %}Flasky{% endblock %}
  3. {% block navbar %}
  4. <div class="navbar navbar-inverse" role="navigation">
  5. <div class="container">
  6. <div class="navbar-header">
  7. <button type="button" class="navbar-toggle"
  8. data-toggle="collapse" data-target=".navbar-collapse">
  9. <span class="sr-only">Toggle navigation</span>
  10. <span class="icon-bar"></span>
  11. <span class="icon-bar"></span>
  12. <span class="icon-bar"></span>
  13. </button>
  14. <a class="navbar-brand" href="/">Flasky</a>
  15. </div>
  16. <div class="navbar-collapse collapse">
  17. <ul class="nav navbar-nav">
  18. <li><a href="/">Home</a></li>
  19. </ul>
  20. </div>
  21. </div>
  22. </div>
  23. {% endblock %}
  24. {% block content %}
  25. <div class="container">
  26. <div class="page-header">
  27. <h1>Hello, {{ name }}!</h1>
  28. </div>
  29. </div>
  30. {% endblock %}

image.png

自定义错误页面

  1. @app.errorhandler(404)
  2. def page_not_found(e):
  3. return render_template('404.html'), 404
  4. @app.errorhandler(500)
  5. def internal_server_error(e):
  6. return render_template('500.html'), 500
  1. {% extends "base.html" %}
  2. {% block title %}Flasky - Page Not Found{% endblock %}
  3. {% block page_content %}
  4. <div class="page-header">
  5. <h1>Not Found</h1>
  6. </div>
  7. {% endblock %}

url_for()函数

参数可以是视图函数的函数名,即@app.route()和app.add_url_route()定义的路径。
例如调用url_for(‘index’,_external=True),对应的地址则是http://localhost:5000/,但是这里不知道是默认的还是说index是个函数。
也可以生成动态url
例如,url_for(‘user’,name=’john’, _external=True) 的返回结果是http://localhost:5000/user/john。

传给url_for() 的关键字参数不仅限于动态路由中的参数,非动态的参数也会添加到查询
字符串中。例如,url_for(‘user’, name=’john’, page=2, version=1) 的返回结果是/user/
john?page=2&version=1。