无法使用Flask-Moment在网页上显示时间

3

我希望使用Flask-Moment在访问index.html时显示网页上的时间。我已经使用了bootstrap,并使用了moment.js,但它仍然无法正常工作。请提供一些帮助,谢谢!

我的主要py文件

from flask.ext.bootstrap import Bootstrap
from flask.ext.moment import Moment
from flask import request
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,它继承了bootstrap

{% extends "bootstrap/base.html" %}
{%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">
{% block scripts %}          #Here I use the bootstrap
{{ super() }}                 #But I dont' whether it works or not
{{ moment.include_moment() }}
{% endblock %}
{%endblock%}

{% 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 %}

最后一个是index.html。
<p>The local date and time is {{moment(current_time).format('LLL')}}.</p>
<p>That was {{moment(current_time).fromNow(refresh=True)}}</p>   

enter image description here


你需要同时包含moment jquery文件:'{{ moment.include_jquery() }}'。 - rfkortekaas
好的,我会尝试一下...因为我正在阅读《Flask Web开发》这本书...作者说如果我使用了Bootstrap,那就意味着我已经包含了jQuery..所以我没有再单独引入它。不管怎样,我会尝试一下的,谢谢。 - AllenBigBear
1
它不起作用.....:( 有没有地方可以看到moment和jquery是否起作用了??? - AllenBigBear
你能试试在模板中省略 'current_time',看看它是否能正常工作吗? - rfkortekaas
你是指像这样吗?我尝试了,但没成功......<p>本地日期和时间为{{moment().format('LLL')}}。</p><p>那是{{moment().fromNow(refresh=True)}}。</p> - AllenBigBear
显示剩余2条评论
2个回答

2

我因使用旧教程而着陆在这个页面上,在该教程中,flask扩展被导入,就像你上面所做的那样。因此,在flask==1.0.2中,这些导入将不起作用。我得到了与你上面得到的类似的错误。相反,我建议任何着陆在这个页面上的人使用以下内容:from flask_bootstrap import Bootstrapfrom flask_moment import Moment。其他所有内容都如其他答案中所述。愉快编码。


1
如果 index.html 只包含这两行,那么它清楚地反映了你在屏幕截图上看到的输出,那么你需要从 base.html 进行扩展。
{% extends 'base.html' %}

{% block title %}Flasky - Home page{% endblock %}

{% block page_content %}
<p>The local date and time is {{moment(current_time).format('LLL')}}.</p>
<p>That was {{moment(current_time).fromNow(refresh=True)}}</p>   
{% endblock %}

啊...我明白了,我忘记在index.html中添加"extend"并且没有使用block......现在它可以工作了!非常感谢! - AllenBigBear

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接