Flask AppBuilder安装

安装

安装很简单,使用普通的python软件包安装。我建议您另外安装基础骨架应用程序,以便您可以立即运行应用程序(没有任何型号)和易于增长的样板。

简单安装

您可以通过以下方式安装框架:

$ pip install flask-appbuilder

建议虚拟环境安装

虚拟环境是非常可取的,因为您拥有的项目越多,您将越有可能使用不同版本的Python本身,或至少不同版本的Python库。让我们面对这一点:图书馆通常往往兼容兼容,而且任何严重的应用程序都不可能有零依赖关系。那么如果两个或更多的项目有冲突的依赖,那么你该怎么办?

如果您在Mac OS X或Linux上,以下两个命令之一有可能适用于您:

$ sudo easy_install virtualenv

甚至更好:

$ sudo pip install virtualenv

其中一个可能会在您的系统上安装virtualenv。也许这是你的包裹经理。如果您使用debian系统(如Ubuntu),请尝试:

$ sudo apt-get install python-virtualenv

接下来创建一个virtualenv:

$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.
$ . venv/bin/activate
(venv)$

现在在虚拟环境中安装FAB,它会安装所有依赖项,这些将与系统的python包隔离

(venv)$ pip install flask-appbuilder

一旦您安装了virtualenv,请使用fabmanager命令行工具来创建您的第一个应用程序。所以创建一个骨架应用程序和第一个管理员用户:

(venv)$ fabmanager create-app
Your new app name: first_app
Your engine type, SQLAlchemy or MongoEngine [SQLAlchemy]:
Downloaded the skeleton app, good coding!
(venv)$ cd first_app
(venv)$ fabmanager create-admin
Username [admin]:
User first name [admin]:
User last name [user]:
Email [admin@fab.org]:
Password:
Repeat for confirmation:

框架将立即在数据库中插入所有可能的权限,这些权限将与您刚刚创建管理员用户Admin角色相关联你准备运行:

(venv)$ fabmanager run

这将启动一个Web开发服务器

你现在在http:// localhost:8080上有一个正在运行的开发服务器

实际上,您不需要运行AppBuilder的框架应用程序,但这是一个很好的开始。这个第一个应用程序是基于SQLAlchemy的。

注意
有两种类型的骨架可用,您可以从SQLAlchemy默认值或Mongongine for MongoDB中选择。要使用MongoEngine骨架,您需要安装flask-mongoengine扩展。

初始化

自1.3.0版本以来,没有管理员用户被自动创建,您必须使用fabmanager来执行此操作。有很多其他有用的选项,可以与fabmanager一起使用,如重置用户的密码,列出所有用户和视图等。

安装要求

Flask App Builder依赖于

  • flask :Web框架,这是我们正在扩展的。
  • flask-sqlalchemy :DB访问(参见SQLAlchemy)。
  • flask-login:登录,flask上的会话。
  • flask-openid:打开ID身份验证。
  • flask-wtform:Web表单。
  • flask-Babel:用于国际化。

如果您打算使用图像处理或上传,则需要安装PIL:

pip install pillow
or:
pip install PIL

Python 2和3兼容性

该框架本身是兼容的,并且已经针对Python 2.6,2.7和3.3进行了测试。但是,在Python 3.3中仍然存在一个问题,框架国际化功能使用了优秀的包Babel,但是我发现python 3.3不兼容。虽然这个问题没有解决,但是对于FAB上的Py3.3有一个限制,你不能使用Babel的功能,所以在配置上你只能设置英文:

BABEL_DEFAULT_LOCALE = 'en'
BABEL_DEFAULT_FOLDER = 'translations'
LANGUAGES = {
    'en':{'flag':'gb','name':'English'}
}
 

 

原文地址:https://www.cnblogs.com/Jonecmnn/p/7609921.html