关于Flask扩展:
因为版本原因,在书中几乎所有的flask.ext.xxx都可以换成flask_xxx。
例:flask.ext.script --> flask_script
flask.ext.bootstrap --> flask_bootstrap
这些flask扩展模块都可以通过命令行使用 pip 下载。
虽然不换可能不会报错,但是换了肯定不会报错,后面还有一些模块已经过时,需要更换,不然会报错,稍后会讲到。
在示例3-10中,定义收藏夹图表部分可以不写,因为我们好像没有收藏夹图标,可能需要去下载。
在3.6节的时候,关于使用Flask-moment 本地化时间与日期,出现了一些问题。
MyFlask.py代码
from flask import Flask, render_template
from flask_bootstrap import Bootstrap
from flask_moment import Moment
from datetime import datetime
app = Flask(__name__)
bootstrap = Bootstrap(app)
moment = Moment(app)
@app.route('/')
def index():
return render_template('index.html',
current_time=datetime.utcnow())
base.html代码
<!DOCTYPE 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 %}
{% block head %}
{{ super() }}
<link rel="shortcut icon" href="{{ url_for('static', filename = 'favicon.ico') }}"
type="image/x-icon">
<link rel="icon" href="{{ url_for('static', filename = 'favicon.ico') }}"
type="image/x-icon">
{% endblock %}
{% block scripts %}
{{ super() }}
{{ moment.include_moment() }}
{% endblock %}
index.html代码
<h1>Hello World!</h1>
<p>local date and time is {{ moment(current_time).format('LLL') }}.</p>
<p>That was {{ moment(current_time).fromNow(refresh=True) }}.</p>
浏览器的界面
具体原因:未知
解决方法:
1.将这个√给去掉
2.修改index.html
{% extends "base.html" %}
<!DOCTYPE html>
{% block page_content %}
<h1>Hello World!</h1>
<p>local date and time is {{ moment(current_time).format('LLL') }}.</p>
<p>That was {{ moment(current_time).fromNow(refresh=True) }}.</p>
{% endblock %}