您的位置:首页 > Web前端 > BootStrap

python Flask学习笔记(二)-集成bootstrap

2016-12-19 20:52 477 查看
Flask Bootstrap起步

pip3 install flask-script
pip3 install flask-bootstrap


flask bootstrap使用

hello.py

from flask import Flask, render_template
from flask_script import Manager
from flask_bootstrap import Bootstrap

app = Flask(__name__)

manager = Manager(app)
bootstrap = Bootstrap(app)

@app.route('/')
def index():
return render_template('index.html')

@app.route('/user/<name>')
def user(name):
return render_template('user.html', name=name)

if __name__ == '__main__':
manager.run()


user.html

{% extends "bootstrap/base.html" %}

{% block title %}Flasky{% endblock %}

{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Flasky</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
</ul>
</div>
</div>
</div>
{% endblock %}

{% block content %}
<div class="container">
<div class="page-header">
<h1>Hello, {{ name }}!</h1>
</div>
</div>
{% endblock %}


自定义基类模板

base.html

# 集成自bootstrap/base.html
{% extends "bootstrap/base.html" %}

{% block title %}Flasky{% endblock %}

{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Flasky</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
</ul>
</div>
</div>
</div>
{% endblock %}

{% block content %}
<div class="container">
{% block page_content %}{% endblock %}
</div>
{% endblock %}


继承自自定义base.html

user.html

{% extends "base.html" %}

{% block title %}Flasky{% endblock %}
{% block page_content %}
<div class="page-hearder">
<h1>Hello, {{ name }}</h1>
</div>
{% endblock %}


自定义错误页面 404.html

# 继承自定义base.html
{% extends "base.html" %}
{% block title %}Flasky-Page Not Found {% endblock %}
{% block page_content %}
<div class="page-header">
<h1>Not Found</h1>
</div>
{% endblock %}


使用Flask-Moment本地化日期时间

moment.js可以在浏览器渲染日期和事件,Flask-moment是一个Flask扩展,可以把moment.js集成到Jinja模板中

pip install flask-moment


在template/base.html中引入moment.js

{% block script %}
{{ super() }}
{{ moment.include_moment() }}
{% endblock %}


hello.py中加入
moment = Moment(app)




from flask import Flask, render_template
from flask_script import Manager
from flask_bootstrap import Bootstrap
from datetime import datetime
from flask_moment import Moment

app = Flask(__name__)
moment = Moment(app)
manager = Manager(app)
bootstrap = Bootstrap(app)

@app.route('/')
def index():
return render_template('index.html', current_time=datetime.utcnow())

@app.route('/user/<name>')
def user(name):
return render_template('user.html', name=name)

if __name__ == '__main__':
manager.run()


index.html

{% extends "base.html" %}
{% block content %}
{{ super() }}
<h1>Hello the local date and time is {{ moment(current_time).format('LLLL') }}</h1>
<p>That was {{ moment(current_time).fromNow(refresh=True) }}</p>
{%  endblock %}


发现时间总是不能正常显示,查看页面代码发现 时间的样式表中
style="display:none"
改为
style="display:block"
即可正常显示

效果如下图所示



本文参考《Flask Web开发-基于Python的Web应用开发实战》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python flask