一、Flask-Bootstrap使用CDN
1.Flask-Bootstrap的用法
from flask import Flask
from flask_bootstrap import Bootstrap
def create_app():
app = Flask(__name__)
Bootstrap(app)
return app
# do something with app...
2.Flask-Bootstrap使用CDN
Flask-Bootstrap默认的CDN是国外的
https://cdnjs.cloudflare.com
这个CDN在国内加载有问题,反正我是没有加载出来,所以得改成国内的BootCDN,修改成下面的就行了。
from flask import Flask
from flask_bootstrap import Bootstrap
def create_app():
app = Flask(__name__)
Bootstrap(app)
app.extensions['bootstrap']['cdns']['bootstrap'] = WebCDN(
'//cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/')
app.extensions['bootstrap']['cdns']['jquery'] = WebCDN(
'//cdn.bootcdn.net/ajax/libs/jquery/3.6.0/')
return app
# do something with app...
3.扩展
Flask-Bootstrap源码片段
def lwrap(cdn, primary=static):
return ConditionalCDN('BOOTSTRAP_SERVE_LOCAL', primary, cdn)
bootstrap = lwrap(
WebCDN('//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/%s/' %
BOOTSTRAP_VERSION), local)
jquery = lwrap(
WebCDN('//cdnjs.cloudflare.com/ajax/libs/jquery/%s/' %
JQUERY_VERSION), local)
html5shiv = lwrap(
WebCDN('//cdnjs.cloudflare.com/ajax/libs/html5shiv/%s/' %
HTML5SHIV_VERSION))
respondjs = lwrap(
WebCDN('//cdnjs.cloudflare.com/ajax/libs/respond.js/%s/' %
RESPONDJS_VERSION))
二、Flask-Moment使用CDN
1.Flask-Moment使用CDN
默认的CDN地址
https://cdnjs.cloudflare.com
改成国内的BootCDN,做如下更改即可。
{% block scripts %}
{{ super() }}
{{ moment.include_moment(local_js="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js") }}
{% endblock %}
2.扩展,Flask-Moment本地化
本地化得修改CDN源为 moment-with-locales.min.js
{% block scripts %}
{{ super() }}
{{ moment.include_moment(local_js="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js") }}
{{ moment.locale('zh-CN') }}
{% endblock %}
PS:《Flask Web开发:基于Python的Web应用开发实战(第2版)》