没有按书上做,访问页面总是出不来时间,按F12查看页面源码发现style中的disply:none,取消后就能显示时间,但是也不是应该显示的格式,猜测还是因为moment和jquery的js文件加载的问题,虽然用原书上的方法肯定能够实现,但是不想用bootstrap。
于是考虑把moment和jquery文件放在服务器上,这样比访问flask-moment.py上的那个默认地址快多了,那么多版本也不知道下载哪个,最后去github上看了源码才知道,include_moment(),include_jquery()这两个方法是下边这样的。
@staticmethod
def include_moment(version='2.18.1', local_js=None):
js = ''
if local_js is not None:
js = '<script src="%s"></script>\n' % local_js
elif version is not None:
js_filename = 'moment-with-locales.min.js' \
if StrictVersion(version) >= StrictVersion('2.8.0') \
else 'moment-with-langs.min.js'
js = '<script src="//cdnjs.cloudflare.com/ajax/libs/' \
'moment.js/%s/%s"></script>\n' % (version, js_filename)
return Markup('''%s<script>
@staticmethod
def include_jquery(version='2.1.0', local_js=None):
js = ''
if local_js is not None:
js = '<script src="%s"></script>\n' % local_js
else:
js = ('<script src="//code.jquery.com/' +
'jquery-%s.min.js"></script>') % version
return Markup(js)
于是先在网上下载了这两个js文件,放在static目录中,在使用时,尝试过在head标签中用url_for的方法,还是不行,最后用这样的方法解决的:
{% block head %}
{{ super() }}
{{ moment.include_jquery(local_js='/static/jquery.min.js')}}
{{ moment.include_moment(local_js='/static/moment-with-locales.min.js')}}
{% endblock %}
解决这个问题我总结了几点经验:
1.百度很不靠谱,这个问题用百度找了很久都没有解决
2.写博客的不一定就是高手,也可能像我一样都是菜鸡,看了很多人关于这个问题的博客,就是把书上的东西说了一遍,按书上的方法来的,甚至直接把书抄上去了
3.github是个好东西,要学习英语了
4.有问题多思考,不要太依赖搜索引擎,多读代码
最后,萌新求赞!!!
本文分享了解决Flask应用中时间显示异常的过程,通过调整moment和jquery的加载方式,将JS文件放置于服务器静态目录,最终实现了正确的时间显示格式。作者总结了问题解决的经验,包括依赖本地资源、深入阅读代码和减少对搜索引擎的过度依赖。

被折叠的 条评论
为什么被折叠?



