变量看起来有些多,但是函数调用很简单。假设有一篇 id 为 23,使用西班牙语写的 blog,用户想要翻译成英语。这个函数的调用如下:
translate('es', 'en', '#post23', '#translation23', '#loading23')最后我们需要实现的 translate(),我们将不会在 post.html 子模板中编写这个函数,因为每一篇 blog 内容会有些重复。我们将会在基础模版中实现这个函数,下面就是这个函数(文件 app/templates/base.html):
<script> function translate(sourceLang, destLang, sourceId, destId, loadingId) { $(destId).hide(); $(loadingId).show(); $.post('http://my.oschina.net/translate', { text: $(sourceId).text(), sourceLang: sourceLang, destLang: destLang }).done(function(translated) { $(destId).text(translated['text']) $(loadingId).hide(); $(destId).show(); }).fail(function() { $(destId).text("{{ _('Error: Could not contact server.') }}"); $(loadingId).hide(); $(destId).show(); }); } </script>这段代码依赖于 jQuery,需要详细了解上述几个函数的话,请查看 jQuery。
结束语近来当使用 Flask-WhooshAlchemy 为全文搜索的时候,会有一些数据库的警告。在下一章的时候,我们针对这个问题来讲讲 Flask 应用程序的调试技术。
如果你想要节省时间的话,你可以下载 microblog-0.15.zip。