0

私は初心者で、ローカルで開発した単純なアプリケーションを持っています。これは、次のように mongoKit で mongodb を使用します。

app = Flask(__name__)
app.config.from_object(__name__)

customerDB = MongoKit(app)
customerDB.register([CustomerModel])

次に、ビューで CustomerDB を使用します

すべてを heroku クラウドに配置しましたが、データベース接続が機能しません。

接続するために必要なリンクを取得しました:

heroku config | grep MONGOLAB_URI 

しかし、これを引っ張る方法がわかりません。次の投稿を見ましたが、さらに混乱し ています Python から Heroku への mongolab アドオンを使用するにはどうすればよいですか?

どんな助けでも大歓迎です。

ありがとう!

4

1 に答える 1

1

ドキュメントによると、Flask-MongoKit は一連の構成設定をサポートしています。

MONGODB_DATABASE
MONGODB_HOST
MONGODB_PORT
MONGODB_USERNAME
MONGODB_PASSWORD

これらのMONGOLAB_URIそれぞれを取得するには、環境設定を解析する必要があります。リンク先の質問に対するこの回答を出発点として使用できます。

import os
from urlparse import urlsplit

from flask import Flask
from flask_mongokit import MongoKit

app = Flask(__name__)

# Get the URL from the Heroku setting.
url = os.environ.get('MONGOLAB_URI', 'mongodb://localhost:27017/some_db_name')
# Parse it.
parsed - urlsplit(url)

# The database name comes from the path, minus the leading /.
app.config['MONGODB_DATABASE'] = parsed.path[1:]

if '@' in parsed.netloc:
    # If there are authentication details, split the network locality.
    auth, server = parsed.netloc.split('@')
    # The username and password are in the first part, separated by a :.
    app.config['MONGODB_USERNAME'], app.config['MONGODB_PASSWORD'] = auth.split(':')
else:
    # Otherwise the whole thing is the host and port.
    server = parsed.netloc

# Split whatever version of netloc we have left to get the host and port.
app.config['MONGODB_HOST'], app.config['MONGODB_PORT'] = server.split(':')

customerDB = MongoKit(app)
于 2014-10-28T21:13:29.543 に答える