Auf der nächsten Seite wird beschrieben, wie Sie eine Verbindung zu Cloudant herstellen. How can I connect to Cloudant from a Flask App running in Bluemix?
In diesem Beispiel gibt es nur ein Beispiel für das Erstellen einer Datenbank. Daher habe ich ein Beispiel für eine gelesene Datenbank erstellt.
Ich habe die erstellte Datenbank manuell ausgefüllt.
Nur welcome.py muss geändert werden.
# -*- coding: utf-8 -*-
#
# welcome.py
# ----------------------------------------------------------------------
import os
import json
import requests
from flask import Flask
from flask import jsonify
app = Flask(__name__)
app.config.update(
DEBUG=True,
)
# ----------------------------------------------------------------------
def define_url_auth_proc():
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 )
#
return url,auth
# ----------------------------------------------------------------------
@app.route('/')
def welcome():
return app.send_static_file('index.html')
# ----------------------------------------------------------------------
@app.route('/getdb/<db>')
def get_db(db):
try:
url,auth = define_url_auth_proc()
except:
return 'A Cloudant service is not bound to the application. Please bind a Cloudant service and try again.'
rr=requests.get( url + '/' + db, auth=auth )
dict=rr.json()
return jsonify(results=dict)
# ----------------------------------------------------------------------
@app.route('/getdb2/<db>')
def get_db2(db):
try:
url,auth = define_url_auth_proc()
except:
return 'A Cloudant service is not bound to the application. Please bind a Cloudant service and try again.'
url_aa = url + '/' + db + '/_all_docs?include_docs=true'
rr=requests.get( url_aa, auth=auth )
dict=rr.json()
return jsonify(results=dict)
#
# ----------------------------------------------------------------------
@app.route('/createdb/<db>')
def create_db(db):
try:
url,auth = define_url_auth_proc()
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))
# ----------------------------------------------------------------------
Situation, in der Daten manuell eingegeben wurden
Ausführungsergebnis http://ekzemplarocc.mybluemix.net/getdb/test
http://ekzemplarocc.mybluemix.net/getdb2/test
Die App muss mit Cloudant NoSQL verbunden sein, um sie ausführen zu können.
Recommended Posts