如何从Bluemix中运行的Flask应用程序连接到Cloudant?

Chr*_*now 1 python flask cloudant ibm-cloud

我见过Bluemix的烧瓶示例项目:https://github.com/IBM-Bluemix/bluemix-python-flask-sample

如何从此烧瓶应用程序连接到Cloudant?

注意:

  • 我知道如何使用烧瓶.
  • 我已经看到了使用请求库连接到Cloudant的说明,这是我想要使用的方法.
  • 我已经看过Cloudant API文档,我对不同的API方法很满意.

Chr*_*now 5

我为使烧瓶样品项目 工作所遵循的步骤:

  1. 按照示例项目README中的说明进行操作,并将代码部署到Bluemix
  2. 登录Bluemix控制台并向您的应用程序添加Cloudant服务
  3. 修改welcome.pyrequirements.txt源代码以连接到Cloudant.(见下面的例子)
  4. 使用cf push将更改推到Cloudant.
  5. 点击url http://yourbluemixurl/createdb/test创建一个名为'test'的数据库

示例代码:

welcome.py

import os
import json
import requests
from flask import Flask

app = Flask(__name__)

app.config.update(
    DEBUG=True,
)

@app.route('/')
def welcome():
    return 'Welcome to flask and Cloudant on Bluemix.'

@app.route('/createdb/<db>')
def create_db(db):
    try:
        vcap = json.loads(os.getenv("VCAP_SERVICES"))['cloudantNoSQLDB']

        cl_username = vcap[0]['credentials']['username']
        cl_password = vcap[0]['credentials']['password']

        url         = vcap[0]['credentials']['url']
        auth        = ( cl_username, cl_password )

    except:
        return 'A Cloudant service is not bound to the application.  Please bind a Cloudant service and try again.'

    requests.put( url + '/' + db, auth=auth )
    return 'Database %s created.' % db

port = os.getenv('VCAP_APP_PORT', '5000')

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=int(port))
Run Code Online (Sandbox Code Playgroud)

requirements.txt

Flask==0.10.1
requests==2.7.0
Run Code Online (Sandbox Code Playgroud)