Board logo

标题: 快速构建 DMS Web 应用程序之利刃: Flask + Celery + Redis + Cloudant(3) [打印本页]

作者: look_w    时间: 2018-12-7 18:57     标题: 快速构建 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 各个版本都能够提供很好的支持,我们可以快捷方便地根据项目的需求进行选择安装。
待虚拟环境搭建完毕后,即可创建 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 的安装也可以直接通过命令行实现:
安装好后,我们需要对 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 安装好后也需要配置:
然后进行配置:
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)




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0