Fermer

septembre 24, 2018

Configuration de votre environnement PyMongo –


Cet article a été publié à l'origine sur MongoDB . Merci d’avoir soutenu les partenaires qui ont rendu SitePoint possible.

Dans cet article, nous présenterons aux développeurs la programmation de MongoDB à l’aide du langage de programmation Python. PyMongo est le nom de la bibliothèque cliente (dans MongoDB, nous l'appelons un «pilote») que nous utilisons pour interagir avec le serveur MongoDB.

Pour commencer, nous devons installer la chaîne d'outils utilisée par un développeur Python MongoDB typique.

Installation de m

Tout d'abord, m . Difficile à trouver en ligne à moins que votre recherche de «MongoDB m», m soit un outil pour gérer et utiliser plusieurs installations du serveur MongoDB en parallèle. C'est un outil précieux pour tester la version bêta la plus récente et la plus récente, tout en poursuivant le développement de la version principale actuelle.

La manière la plus simple d'installer m est avec npm le gestionnaire de paquets Node.js (dont il s'avère qu’il n’est pas uniquement destiné à Node.js).

 $ sudo npm install -gm
Mot de passe:******
/ usr / local / bin / m -> / usr / local / lib / node_modules / m / bin / m
+ m@1.4.1
mise à jour 1 paquet dans 2.361s
$

Si vous ne pouvez pas ou ne voulez pas utiliser npm, vous pouvez télécharger et installer directement à partir du dépôt GitHub . Voir le LISEZ-MOI pour plus de détails.

Pour aujourd'hui, nous utiliserons m pour installer la version de production stable actuelle ( 4.0.2 au moment de la rédaction du présent document). ).

Nous exécutons la commande stable pour y parvenir.

 $ m stable
MongoDB version 4.0.2 n'est pas installé.
L'installation peut prendre un certain temps. Voulez vous procéder? [y/n] y
... installer binaire

############################################### ###################### 100.0%
/ Utilisateurs / jdrumgoole
... enlever la source
... installation complète
$

Si vous devez utiliser le chemin directement dans un autre programme, vous pouvez l'obtenir avec m bin.

 $ m bin 4.0.0
/usr/local/m/versions/4.0.1/bin
$

Pour exécuter le binaire correspondant do m, utilisez stable :

 $ m utilise stable
2018-08-28T11: 41: 48.157 + 0100 I CONTROL [main] Désactivation automatique de TLS 1.0 pour forcer TLS 1.0 à activer spécifiez --sslDisabledProtocols 'none'
2018-08-28T11: 41: 48.171 + 0100 I CONTROL [initandlisten] Démarrage MongoDB: pid = 38524 port = 27017 dbpath = / data / db Hôte 64 bits = JD10Gen.local
2018-08-28T11: 41: 48.171 + 0100 I CONTROL [initandlisten] db version v4.0.2
2018-08-28T11: 41: 48.171 + 0100 I CONTROL [initandlisten] version git: fc1573ba18aee42f97a3bb13b67af7d837826b47
< other server output >
...
2018-06-13T15: 52: 43.648 + 0100 I RÉSEAU [initandlisten] en attente de connexions sur le port 27017

Maintenant que nous avons un serveur en cours d'exécution, nous pouvons confirmer qu'il fonctionne en se connectant via le mongo shell .

 $ mongo
Version shell MongoDB v4.0.0
connexion à: mongodb: //127.0.0.1: 27017
Version du serveur MongoDB: 4.0.0
Le serveur a des avertissements de démarrage:
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten]
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** AVERTISSEMENT: le contrôle d'accès n'est pas activé pour la base de données.
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** Les accès en lecture et en écriture aux données et à la configuration ne sont pas restreints.
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** AVERTISSEMENT: vous exécutez ce processus en tant qu'utilisateur root, ce qui n'est pas recommandé.
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten]
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** ATTENTION: Ce serveur est lié à localhost.
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** Les systèmes distants ne pourront pas se connecter à ce serveur.
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** Démarrez le serveur avec --bind_ip < address> pour spécifier l'adresse IP
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** adresse les réponses de ou avec --bind_ip_all à
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** se lie à toutes les interfaces. Si ce comportement est souhaité, démarrez le
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten] ** serveur avec --bind_ip 127.0.0.1 pour désactiver cet avertissement.
2018-07-06T10: 56: 50.973 + 0100 I CONTROL [initandlisten]

---
Activer le service de surveillance en nuage gratuit de MongoDB pour collecter et afficher
des métriques sur votre déploiement (utilisation du disque, CPU, statistiques d'opération,
etc).

Les données de surveillance seront disponibles sur un site Web MongoDB avec une
URL créée pour vous. Toute personne avec qui vous partagez l'URL pourra également
voir cette page MongoDB peut utiliser cette information pour fabriquer un produit
des améliorations et de vous suggérer des produits et des options de déploiement MongoDB.

Pour activer la surveillance gratuite, exécutez la commande suivante:
db.enableFreeMonitoring ()
---

>

Ces avertissements sont standards. Ils indiquent que cette base de données n'a pas de configuration de contrôle d'accès par défaut et qu'elle n'écoute que les connexions provenant de la machine sur laquelle elle s'exécute ( localhost ). Nous apprendrons à configurer le contrôle d'accès et à écouter un plus grand nombre de ports dans les épisodes suivants.

Installation du pilote PyMongo

Mais cette série ne concerne pas le Shell MongoDB, qui utilise JavaScript comme élément du monde. c'est à propos de Python. Comment pouvons-nous nous connecter à la base de données avec Python?

Nous devons d'abord installer le pilote Python MongoDB, PyMongo . Dans le langage MongoDB, un pilote est une bibliothèque client spécifique au langage qui permet aux développeurs d'interagir avec le serveur dans le langage de leur propre langage de programmation.

Pour Python, cela signifie installer le pilote avec pip . Dans node.js, le pilote est installé avec npm et en Java, vous pouvez utiliser maven .

 $ pip3 install pymongo
Collecte de pymongo
  Téléchargement https://files.pythonhosted.org/packages/a1/e0/51df08036e04c1ddc985a2dceb008f2f21fc1d6de711bb6cee85785c1d78/pymongo-3.7.1-cp27-cp27m-macosx_10_13_intel.whl (333kB)
    100% | ████████████████████████████████ | 337 ko 4,1 Mo / s
Installation des paquets collectés: pymongo
Pymongo-3.7.1 installé avec succès
$

Nous vous recommandons d'utiliser un environnement virtuel pour isoler votre code PyMongo Monday. Ceci n'est pas obligatoire mais est très pratique pour isoler différents flux de développement.

Maintenant, nous pouvons nous connecter à la base de données:

 $ python
Python 3.6.5 (v3.6.5: f59c0932b4, 28 mars 2018, 03:03:55)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] sur darwin
Tapez "help", "copyright", "credits" ou "license" pour plus d'informations.
>>> import pymongo (1)
>>> client = pymongo.MongoClient (host = "mongodb: // localhost: 8000") (2)
>>> resultat = client.admin.command ("isMaster") (3)
>>> import pprint
>>> pprint.pprint (résultat)
{'ismaster': C'est vrai,
 'localTime': datetime.datetime (2018, 6, 13, 21, 55, 2, 272000),
 'logicalSessionTimeoutMinutes': 30,
 'maxBsonObjectSize': 16777216,
 'maxMessageSizeBytes': 48000000,
 'maxWireVersion': 6,
 'maxWriteBatchSize': 100000,
 'minWireVersion': 0,
 'ok': 1.0,
 'readOnly': Faux}
>>>

Nous importons tout d'abord la bibliothèque PyMongo (1) . Ensuite, nous créons un objet client local (2) qui contient le pool de connexions et d'autres statuts pour ce serveur. Nous ne voulons généralement pas avoir plus d’un objet MongoClient par programme, car il fournit son propre pool de connexions.

Nous sommes maintenant prêts à envoyer une commande au serveur. Dans ce cas, c’est la commande standard d’information du serveur MongoDB qui est appelée de façon plutôt anachronique isMaster (3) . Ceci est une gueule de bois des premières versions de MongoDB. Il apparaît dans les versions antérieures à 1.0 de MongoDB (qui a plus de dix ans à ce stade). La commande isMaster renvoie un dict qui détaille un tas d'informations sur le serveur. Afin de formater ceci de manière plus lisible, nous importons la bibliothèque pprint .

Conclusion

Nous avons installé MongoDB, installé la bibliothèque cliente Python (aussi appelée pilote), démarré un mongod et établi une connexion entre le client et le serveur.

La semaine prochaine, nous lancerons les opérations CRUD sur MongoDB, à partir de Create .

Pour vos commentaires, veuillez poser vos questions sur twitter / jdrumgoole . De cette façon, tout le monde peut voir les réponses.

La meilleure façon d’essayer MongoDB est via MongoDB Atlas notre base de données entièrement gérée en tant que service disponible sur AWS, Google Cloud Platform (CGP) et Azure. ] Joe Drumgoole  » class= »avatar avatar-96 wp-user-avatar wp-user-avatar-96 alignnone photo »/>

Joe est le directeur du développement des développeurs, EMEA chez MongoDB.






Source link

Revenir vers le haut