web-dev-qa-db-ja.com

MongoDBをFlaskで使用するにはどうすればよいですか?

Flaskがインストールされていて、MongoDBデータベースをFlaskアプリをすぐに構築し始めているので、どのように接続して使用できるかを考えています。

7
Zoid

これら3つのライブラリのいずれかを使用できます

私は個人的にflask mongoengineを使用しており、すべてが正常に動作します

13

個人的にはPyMongoライブラリはシンプルで使いやすいと思います。

最初にMongoClientをインポートして接続を作成する必要があります:

from pymongo import MongoClient
client = MongoClient()

次に、dbインスタンスとコレクション(テーブル)を取得します。

db = client.my_database
collection = db.my_collection

その後、データを保持するJSONドキュメントを操作することでデータを操作できます。彼らのウェブサイトに完全な例があります。

PyMongoの使い方についての this チュートリアルをご覧ください。

7
Muntaser Ahmed

たぶん、MongoDBに接続するためにFlaskに特別なライブラリを使用する必要はありません。

Flaskアプリケーションを通常のPythonプログラムとして扱い、通常のPythonライブラリのような PyMongo

ここ は他の誰かによる例です。 A Flask PyMongoを介してMongoDBに接続するアプリ。

3
Yingbo Cui

以下は、Flaskを使用したMongoDBの簡単な例です。

  import pymongo
  import json
  client = pymongo.MongoClient("localhost", 27017)
  collection_USER = client[simple]
  Define_Collection_for_USER_FILE = collection_USER['USER']
  Define_Collection_for_USER_FILE.remove({})
  Define_Collection_for_USER_FILE.insert(json.loads(filename))
2
v.k

Flask-Flask_pymongo&フラスコ_mongoengineは2つのpythonモジュールを使用してmongoDBと簡単に統合するために使用できます。どちらもpymongoを次のように使用します。メソッドとクラスで使用可能なpymongoは、モジュール(flask_pymongoとFlask_mongoengine)を使用しているときに簡単に継承できるように、ベースライブラリを使用します。mongoengineを使用して見つけたモデルの作成がより簡単になりました。flask_mongoengineを使用してソリューションを提供しています。

using python 3.6 + and flask 1.1.1 +(=でテストPython 3.7+も)

flask_mongoengineを使用

構成ファイル.cfg

MONGODB_SETTINGS = {
    'DB': 'Your_DB_Name',
    'Host': 'localhost',
    'port': 27017,
}

App.pyファイル

app.config['SECRET_KEY'] = SECRET_KEY
db = MongoEngine()

app.config.from_pyfile('settings.cfg')

with app.app_context():
   db.init_app(app)
   try:
       db_client = db.connection['flask_webapp_db']
   except ConnectionFailure as e:
       sys.stderr.write("Could not connect to MongoDB: %s" % e)
       sys.exit(1)

........
@app.route('/')
def signup():
signup_form = get_signup_form(User)
if signup_form.validate_on_submit():
    try:
        user = db_client.User
        user.save(signup_form.data)
        print('user registered')
        return redirect('/')
    except WriteError as WE:
        print(WE)
return render_template('signup.html', form=signup_form)

以下のようなモデルファイルでユーザーモデルを作成します-このファイルはテーブルを定義するものです(Mongodbのドキュメントとして知られています

models.py

from mongoengine.document import Document
from mongoengine.fields import DateTimeField, StringField, EmailField


class User(Document):
    username = StringField(min_length=4, required=True, unique=True)
    password = StringField(min_length=8, required=True)

    meta = {'db_alias': 'flask_webapp_db'}    # your db name where you want to create the table(Dcoument) User is your Document(Table) name
    def save(self, force_insert=False, validate=True, clean=True,
         write_concern=None, cascade=None, cascade_kwargs=None,
         _refs=None, save_condition=None, signal_kwargs=None, **kwargs):
        pass
2
Bikiran Das

私はFlask-Pymongoを使用しています:

from pymongo import MongoClient

app = Flask(__name__)


app.config['MONGO_DBNAME'] = 'reports' # name of database on mongo
app.config["MONGO_URI"] = "mongodb://127.0.0.1:27017/reports"
mongo = PyMongo(app)

うまくいきました!

0
Naiara Andrade

あなたが従わなければならないいくつかのステップがあります。 flaskは軽量のフレームワークであるため、必要に応じて使用するには異なるパッケージをインストールする必要があります。

したがって、Mongodbを使用してプロジェクトで作業するため、Pymongoをインストールする必要があります。

pip install Pymongo

その後、MongoDBでDBを設定する必要があります。

  • したがって、Mongodbでデータベースを作成し、データベースをデータベース内に作成した後、コレクションを作成するか、関数から追加します。

データベース名:MyDaTaBaSe

完了したら、作業環境をセットアップします。

import os
from flask import Flask, render_template, redirect, request, url_for, session
from flask_pymongo import PyMongo #<<< THIS IS THE GUY YOU WILL NEED TO CONNECT WITH Mongodb



app = Flask(__name__)

#App configuration -- table name and the link
app.secret_key = 'any random string'
app.config['MONG_DBNAME'] = 'MyDaTaBaSe'
app.config['MONGO_URI'] = 'mongodb+srv://<YOUR_USERNAME_HERE>:<YOUR_PASSWORD_HERE>@myfirstcluster-uyvei.mongodb.net/MyDaTaBaSe?retryWrites=true'


mongo = PyMongo(app)

@app.route(/)
def index():
    return render_template('index.hml')

したがって、主な連中はapp.config['MONG_DBNAME'] = 'MyDaTaBaSe'使用するデータベースとapp.config['MONGO_URI']接続とリンクをセットアップする必要があります。このリンクでは、ユーザー名とパスワード、およびデータベースの名前を最後に配置する必要があります。

したがって、これがMongodbと接続するための基本です。

0
Elias Prado