4

caravel系列之简易配置/定制

 2 years ago
source link: http://wwj718.github.io/post/%E6%95%B0%E6%8D%AE/caravel-config/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在上一篇文章里,我们简单介绍了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安装路径下

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

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权限,这样一来不具有管理权限,又可以正常浏览


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK