Wes*_*sey 6 python heroku mongodb flask mongohq
我在使用MongoHQ Heroku插件时遇到了麻烦.本地我的应用程序工作,并且os变量在Heroku上存在且格式良好.但是,当我尝试访问数据库时,它会抛出一个错误:OperationFailure: database error: unauthorized db:my_database ns:my_database.cars lock type:0 client:128.62.187.133.如果我尝试从MongoHQ硬编码连接字符串并在本地运行,我会得到同样的错误.
我的应用程序如下:
import os
import datetime
from flask import Flask
from flask import g
from flask import jsonify
from flask import json
from flask import request
from flask import url_for
from flask import redirect
from flask import render_template
from flask import make_response
import pymongo
from pymongo import Connection
from bson import BSON
from bson import json_util
app = Flask(__name__)
def mongo_conn():
# Format: MONGOHQ_URL: mongodb://<user>:<pass>@<base_url>:<port>/<url_path>
if os.environ.get('MONGOHQ_URL'):
return Connection(os.environ['MONGOHQ_URL'])
else:
return Connection()
@app.route('/', methods=['GET', 'POST'])
def hello():
# Get your DB
connection = mongo_conn()
db = connection.my_database
# Create an object
car = {"brand": "Ford",
"model": "Mustang",
"date": datetime.datetime.utcnow()}
# Get your collection
cars = db.cars # crashes
# Insert it
cars.insert(car)
...
Run Code Online (Sandbox Code Playgroud)
编辑:MongoHQ支持帮助了我.问题是我在调用我的数据库my_database而不是MongoHQ插件给我的实际数据库名称.例如,db = connection.app52314314.这个改变解决了它.
您可能需要authenticate在连接后立即针对数据库运行该命令。
尝试这样的事情:
db.authenticate([USER], [PASSWORD])
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请随时发送电子邮件至 support@mongohq.com,我们可以帮助您解决特定的数据库问题。
| 归档时间: |
|
| 查看次数: |
2602 次 |
| 最近记录: |