caravel

在上一篇文章里,我们简单介绍了caracel和它的安装方式,这篇文章主要介绍如何简单配置/定制caravel

默认配置

caravel的默认配置为config,我们可能对其中的一些配置项感兴趣

  • CARAVEL_WORKERS
  • CARAVEL_WEBSERVER_PORT
  • APP_NAME
  • APP_ICON
  • BABEL_DEFAULT_LOCALE
  • LANGUAGES
  • CACHE_CONFIG
  • ENABLE_CORS

这些变量的自说明性很好,就不解释了

修改默认配置

创建caravel_config.py,通过在PYTHONPATH里添加caravel_config.py所在目录的路径

至于如何修改PYTHONPATH,我的做法是修改~/.bash_profile,添加

export PYTHONPATH=/home/wwj/caravel_dev

之后需要退出shell,再进入才生效

我的caravel_config.py在/home/wwj/caravel_dev目录下

启动caravel runserver -d,即可看到定制化的caravel

界面定制

点击dashboard里Edit the dashboard'css按钮,之后你可以选择不同的主题,方然也可以添加你自己css样式

caravel使用flask-appbuilder构建项目骨架,flask-appbuilder采用了bootswatch来定制主题样式,可以通过APP_THEME变量来改变主题,可选主题参考bootswatch.com,我偏好slate主题,slate对应的配置为APP_THEME = "slate.css"

具体的配置选项参考:examples/oauth/config.py

更多定制

前头说到caravel使用flask-appbuilder来构建项目骨架,所以flask-appbuilder的配置参数,对caravel有效,具体配置参考:flask-appbuilder config

汉化

首先你需要修改LANGUAGES变量的默认值,默认不包含汉语,当前(2016-07-26)默认安装的caravel版本为caravel-0.10.0,这个版本的源码不带有翻译包(translations), 如果你期望做汉化的话,需要手动将translations/zh/LC_MESSAGES目录放到package安装路径下

以下是我的汉化文件,在目录下执行以下代码即可

1
2
wget https://raw.githubusercontent.com/wwj718/caravel/master/caravel/translations/zh/LC_MESSAGES/messages.po
wget https://raw.githubusercontent.com/wwj718/caravel/master/caravel/translations/zh/LC_MESSAGES/messages.mo

目前汉化包还不完备,之后有时间,我想维护一个caravel_cn的项目,做些本地化的工作,包括常用前端库的国内cdn和google字体之类的本地化,有兴趣的小伙伴可以一起

认证系统

默认的认证系统为AUTH_TYPE = AUTH_DB,我们可以将其配置为其他选项,诸如:AUTH_REMOTE_USER,AUTH_OID,AUTH_LDAP以及AUTH_OAUTH,配置为OAuth时,需要安装Flask-OAuthlib,之后flask-appbuilder和Flask-OAuthlib有一个整合,如果你需要使用自己的oauth provider,可能需要处理下这部分

另,把用户设置为public,会导致无法登陆(错误信息为:Access is Denied for: can_welcome)。建议给新用户alpha权限,这样一来不具有管理权限,又可以正常浏览