首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

快速构建 DMS Web 应用程序之利刃: Flask + Celery + Redis + Cloudant(3)

快速构建 DMS Web 应用程序之利刃: Flask + Celery + Redis + Cloudant(3)

快速搭建项目环境了解了不同技术在系统中充当的角色,我们现在就可以开始安装搭建项目了。
搭建        Python 环境因为 Flask 是基于 Python 的微框架,所以首先要保证计算机拥有 Python 环境。在电脑终端,输入 Python 查看是否有 Python        环境。如若出现版本号,则已安装 Python,若 import 报错,则还未安装 Python。如果是 macOS 则自带 Python 2.7。
搭建        Flask 环境1. 安装 Virtualenv。
Python 有多个版本,而且不同的版本间是不兼容的,而不同项目中使用不同版本的 Python 可能会造成外部库不兼容。所以我们就需要根据项目的要求选择对应的 Python        版本进行安装。virtualenv 对 Python 各个版本都能够提供很好的支持,我们可以快捷方便地根据项目的需求进行选择安装。
  • Linux/macOS X:通过 $ sudo easy_install virtualenv 或使用 pip            $ sudo pip install virtualenv 进行安装,但使用这种方法我们首先要保证已安装 pip 环境。
  • Ubuntu:使用 $ sudo apt-get install python-virtualenv          进行安装。
待虚拟环境搭建完毕后,即可创建 Flask 工作环境,如清单 1 所示:
清单 1. 创建 Flask        工作环境
1
2
3
$ mkdir my-project
$ cd my-project
$ virtualenv venv




当显示 New python executable in venv/bin/python Installing distribute…done.        则安装成功。当在某项目中工作时,执行以下命令来激活 virtualenv:
$ . venv/bin/activate (Mac/Linux)
$ venv\scripts\activate (Windows)




2. 安装 Flask。
激活 virtualenv 后,通过命令 $ pip install Flask 就可以安装并激活 Flask 了。
3. 搭建一个 Flask demo,如清单 2 所示:
清单 2. 一个 Flask Demo
1
2
3
4
5
6
7
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello World!'
if __name__ == '__main__':
    app.run()




保存为 hello.py,在终端运行 $ python hello.py,然后在浏览器运行          localhost:5000/ 便可以启动了。也可以通过 app.run(host=’0.0.0.0)  修改调用方法。
安装使用        Redis由于数据量很大,我们需要一个缓存来对临时变量进行存储,可以使用 Redis 实现这个愿景。Redis 的安装也可以直接通过命令行实现:
  • macOS:通过 $ brew install redis 安装并用 $ brew services            start redis 或 $ redis-server /usr/local/etc/redis.conf 来启动。
  • Linux:通过以下命令安装:
    $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
    $ tar xzf redis-2.8.17.tar.gz
    $ cd redis-2.8.17
    $ make





    并用以下命令启动:
    $ cd src
    $ ./redis-server




  • Windows:在  下载安装包,将            Redis-x64-xxx.zip 压缩包到 C 盘,解压后,将文件夹重新命名为 redis。打开一个 CMD          窗口使用命令切换目录到 C:\redis 运行 redis-server.exe          redis.windows.conf。
    为方便起见,可以把 Redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个            redis.windows.conf 可以省略,如果省略,会启用默认的。这时候另启一个 CMD          窗口。(注意,原来的不要关闭,不然就无法访问服务端了。) 切换到 redis 目录下运行: redis-cli.exe -h 127.0.0.1 -p            6379。
    设置键值对:set myKey abc
    取出键值对:get myKey
  • Ubuntu:通过以下命令安装:
    $sudo apt-get update
    $sudo apt-get install redis-server





    并通过以下命令启动:
    $            redis-server
安装好后,我们需要对 Redis 进行配置,Redis 默认配置文件 redis.conf 在根目录下,我们可以通过 Redis 的 config        命令来获取和设置所有的 Redis 配置:$ redis 127.0.0.1:6379> CONFIG GET        CONFIG_SETTING_NAME。
配置好后,就差最后一步即可使用 Redis 了,我们要将它引入到程序中来,通过 iredis.Redis(host=url, port=port,          db=0) 将 Redis 连接至本地数据库,最后通过 redis_client = redis.from_url(REDIS_URL)        连接 RPC。
安装使用        MQ有了缓存,还需要通信,本系统中通过消息队列实现通信。通过 $ brew install rabbitmq 实现安装。安装好后进入到安装目录,并执行          $ sbin/rabbitmq-server 来启动 MQ 的服务。然后在 Celery 中配置 Broker URL,如何配置我们会在 Celery        中详细讨论。
安装使用        Celery有了消息队列,还需要一个角色去调度这些队列,Celery 就可以做到这个效果。通过命令 $ sudo easy_install Celery 或          $ sudo pip install Celery 进行安装。
同样,Celery 安装好后也需要配置:
  • 当 Celery 默认使用的 Broker 时,RabbitMQ 的配置如下:
    app.conf.broker_url =            'amqp://guest:guest@localhost:5672'
  • 当 Celery 使用 Redis 做 Broker 先通过以下命令安装 Redis 组件:
    $$ pip install -U            celery-with-redis
然后进行配置:
app.conf.broker_url = 'rediss://admin:password@host.composedb.com:39379'
配置好后就可以创建调度任务了,步骤如下:
1. 首先导入 Celery:from celery import Celery,然后通过 app.config.update        写入配置,如图 3 所示:
图 3. 定义 Celery
2. 创建 Celery 任务,如清单 3 所示:
清单 3. 创建 Celery        任务
1
2
3
4
5
6
@celery.task(bind=True)
def run(x):
return x
@celery.task(bind=True)
def power(x):
return x*x




3. 启动 Celery Worker:
$ celery -A name.py worker -l info
4. 最后在 Python 脚本中调用 Celery 中定义的函数就可以运行 Python 脚本:
from project.tasks import run, power
run.delay(args)
返回列表