学习《Flask Web开发》这本书中的flask-moment本地化时间和日期

本文分享了解决Flask应用中时间显示异常的过程,通过调整moment和jquery的加载方式,将JS文件放置于服务器静态目录,最终实现了正确的时间显示格式。作者总结了问题解决的经验,包括依赖本地资源、深入阅读代码和减少对搜索引擎的过度依赖。

    没有按书上做,访问页面总是出不来时间,按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.有问题多思考,不要太依赖搜索引擎,多读代码

 

最后,萌新求赞!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值