Flaskがインストールされていて、MongoDBデータベースをFlaskアプリをすぐに構築し始めているので、どのように接続して使用できるかを考えています。
これら3つのライブラリのいずれかを使用できます
私は個人的にflask mongoengineを使用しており、すべてが正常に動作します
個人的にはPyMongoライブラリはシンプルで使いやすいと思います。
最初にMongoClient
をインポートして接続を作成する必要があります:
from pymongo import MongoClient
client = MongoClient()
次に、dbインスタンスとコレクション(テーブル)を取得します。
db = client.my_database
collection = db.my_collection
その後、データを保持するJSONドキュメントを操作することでデータを操作できます。彼らのウェブサイトに完全な例があります。
PyMongoの使い方についての this チュートリアルをご覧ください。
以下は、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))
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
私は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)
うまくいきました!
あなたが従わなければならないいくつかのステップがあります。 flaskは軽量のフレームワークであるため、必要に応じて使用するには異なるパッケージをインストールする必要があります。
したがって、Mongodbを使用してプロジェクトで作業するため、Pymongo
をインストールする必要があります。
pip install Pymongo
その後、MongoDBでDBを設定する必要があります。
データベース名: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と接続するための基本です。