2016-03-24 12 views
-1

Ich habe eine MongoDB-Datenbank, und ich möchte Flask-PyMongo verwenden, um damit in meiner Flask-App zu arbeiten. Wie füge ich eine Datenbank und eine Sammlung hinzu, um Benutzerdokumente hinzufügen zu können? Ein Dokument mit Flask-PyMongo einfügen

from flask import Flask, render_template, url_for 
from flask.ext.pymongo import PyMongo 

app = Flask(__name__) 
app.config['MONGO_DBNAME'] = 'microblogdb' 
app.config['MONGO_URI'] = 'mongodb://briangunsel:[email protected]:27017/microblogdb' 
mongo = PyMongo(app, config_prefix='MONGO') 


@app.route('/') 
def home(): 
    posts = mongo.db.posts.find({}) 
    return render_template('users.html', posts=posts) 

app.run(debug=True) 

Update: Mit nur diesen Code oben, wenn ich den Server starten (Python init Py) und ich gehen, um die Web-Seite zu laden, ist es für etwa 10 Sekunden laden und gibt mir dann diese Fehler https://gist.github.com/anonymous/62ca41e98e67b304838d. Ich führe die Datenbank microblogdb in einer anderen Cmd-Eingabeaufforderung aus, und ich legte den Mungo -dbpath auf \ data \, das ist ein Ordner, den ich in dem Microblog-Ordner erstellte. Durch den Mongo-Interpreter fügte ich eine posts Sammlung hinzu, es gibt mir immer noch den gleichen Fehler.

+0

Ja .. @davidism Das ist nicht mein Problem ist, frage ich, wie die Einrichtung Flask-PyMongo, weil zur Zeit ich weiß nicht, wie es einzurichten. –

+0

Wie würde ich der Datenbank eine Datenbank und eine Sammlung hinzufügen, damit ich das Benutzerdokument hinzufügen kann? @davidism –

+0

@davidism Ich habe meinen Code nicht geändert, außer dass ich eine Codezeile hinzugefügt habe, die Sie vorgeschlagen haben. Ich frage nur: Muss ich tatsächlich eine Datenbank in der Datei einrichten? Und wenn ja, wie? –

Antwort

1

mongo.db.users gibt die Benutzersammlung in der Datenbank configured zurück. Flask-PyMongo verwendet den PyMongo-Treiber, der umfangreiche Dokumentation enthält. PyMongos tutorial erklärt, wie man ein Dokument einfügt. Sie haben bereits Code, der die Benutzer abruft, die online=True haben.

app.config['MONGO_URI'] = 'mongodb://username:[email protected]:port/db_name' 
user_id = mongo.db.users.insert_one({'name': 'david'}).inserted_id 
+0

Wenn ich diese Zeile zu meinem Code hinzufüge, wird meine Web-App einfach geladen, nichts wird angezeigt. Aber wenn ich diese Zeile entferne, funktioniert es wieder. Muss ich meinem Code etwas anderes hinzufügen, als eine tatsächliche db zu erstellen? –

+0

Ich habe meinen Post bearbeitet - die Konfiguration hinzugefügt –

Verwandte Themen