Flask扩展文档汇总 - (EPUB全文下载)
文件大小:1.07 mb。
文件格式:epub 格式。
书籍内容:
目錄
介紹
Flask Babel 中文文档
Flask Cache 中文文档
Flask Celery 中文文档
Flask Dashed 中文文档
Flask DebugToolbar 中文文档
Flask Exceptional 中文文档
Flask Login 中文文档
Flask Mail 中文文档
Flask PyMongo 中文文档
Flask RESTful 中文文档
使用 Flask 设计 RESTful APIs
Flask SQLAlchemy 中文文档
Flask Testing 中文文档
Flask WTF 中文文档
Flask 扩展文档汇总
来源:
Python中文学习大本营
Flask-Babel
Flask-Babel 是一个
Flask
的扩展,在
babel
,
pytz
和
speaklater
的帮助下添加 i18n 和 l10n 支持到任何 Flask 应用。它内置了一个时间格式化的支持,同样内置了一个非常简单和友好的
gettext
翻译的接口。
安装
下面命令可以安装扩展:
$ easy_install Flask-Babel
或者如果你安装了 pip:
$ pip install Flask-Babel
请注意 Flask-Babel 需要 Jinja 2.5。如果你安装一个老的版本你将会需要升级或者禁止 Jinja 支持。
配置
在配置好应用后所有需要做的就是实例化一个
Babel
对象:
from flask import Flask
from flask.ext.babel import Babel
app = Flask(__name__)
app.config.from_pyfile('mysettings.cfg')
babel = Babel(app)
babel 对象本身以后支持用于配置 babel。Babel 有两个配置值,这两个配置值能够改变内部的默认值:
BABEL_DEFAULT_LOCALE
如果没有指定地域且选择器已经注册, 默认是缺省地域。默认是
'en'
。
BABEL_DEFAULT_TIMEZONE
用户默认使用的时区。默认是
'UTC'
。选用默 认值的时候,你的应用内部必须使用该时区。
对于更复杂的应用你可能希望对于不同的用户有多个应用,这个时候是选择器函数派上用场的时候。babel 扩展第一次需要当前用户的地区的时候,它会调用
localeselector()
函数,第一次需要时区的时候,它会调用
timezoneselector()
函数。
如果这些方法的任何一个返回
None
,扩展将会自动回落到配置中的值。而且为了效率考虑函数只会调用一次并且返回值会被缓存。如果你需要在一个请求中切换语言的话,你可以
refresh()
缓存。
选择器函数的例子:
from flask import g, request
@babel.localeselector
def get_locale():
# if a user is logged in, use the locale from the user settings
user = getattr(g, 'user', None)
if user is not None:
return user.locale
# otherwise try to guess the language from the user accept
# header the browser transmits. We support de/fr/en in this
# example. The best match wins.
return request.accept_languages.best_match(['de', 'fr', 'en'])
@babel.timezoneselector
def get_timezone():
user = getattr(g, 'user', None)
if user is not None:
return user.timezone
以上的例子假设当前的用户是存储在
flask.g
对象中。
格式化日期
你可以使用
format_datetime()
,
format_date()
,
format_time()
以及
format_timedelta()
函数来格式化日期。它们都接受一个
datetime.datetime
(或者
datetime.date
,
datetime.time
以及
datetime.timedelta
)对象作为第一个参数,其它参数是一个可选的格式化字符串。应用程序应该使用天然的 datetime 对象且内部使用 UTC 作为默认时区。格式化的时候会自动地转换成用户时区以防它不同于 UTC。
为了能够在命令行中使用日期格式化,你可以使用
test_request_context()
方法:
>>> app.test_request_context().push()
这里是一些例子:
>>> from flask.ext.babel import format_datetime
>>> from datetime import datetime
>>> format_datetime(datetime(1987, 3, 5, 17, 12))
u'Mar 5, 1987 5:12:00 PM'
>>> format_datetime(datetime(1987, 3, 5, 17, 12), 'full')
u ............
书籍插图:
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » Flask扩展文档汇总 - (EPUB全文下载)