Maison  >  Article  >  développement back-end  >  Explication détaillée de Tortoise ORM, le framework ORM en Python

Explication détaillée de Tortoise ORM, le framework ORM en Python

WBOY
WBOYoriginal
2023-06-10 14:37:456641parcourir

Python est un langage de programmation indispensable Au fur et à mesure de son développement, de nombreux outils et frameworks puissants ont vu le jour. Parmi eux, le framework ORM (Object Relational Mapping) revêt une grande importance dans le développement Python. Tortoise ORM est un framework ORM en Python basé sur une syntaxe asynchrone et offrant des performances et une évolutivité très élevées. Cet article présentera en détail les caractéristiques et l’utilisation de base de Tortoise ORM.

  1. Qu'est-ce qu'un framework ORM ?

Le framework ORM est une technologie qui mappe les objets de données dans les langages de programmation orientés objet vers des bases de données relationnelles. ORM améliore l'efficacité du développement grâce au modèle objet de données, permettant aux développeurs d'utiliser des interfaces de programmation orientées objet pour exploiter des bases de données relationnelles sans avoir besoin d'écrire manuellement des instructions SQL et d'effectuer un traitement des données de manière orientée objet.

  1. Caractéristiques de Tortoise ORM

Tortoise ORM est une bibliothèque ORM asynchrone basée sur le langage Python 3.6+. Voici les principales caractéristiques de Tortoise ORM :

(1) Haute efficacité : Tortoise ORM utilise une syntaxe asynchrone, peut prendre en charge un haut degré de concurrence et offre d'excellentes performances.

(2) Facilité d'utilisation : Tortoise ORM est facile à utiliser, prend en charge une syntaxe similaire à Django ORM et fournit un ensemble complet de modèles ORM (méta classes).

(3) Facile à étendre : pour une meilleure évolutivité, Tortoise ORM sépare l'écriture du modèle de la base de données, afin que nous puissions refactoriser plus facilement le code.

(4) Plugins riches : Tortoise ORM prend en charge de nombreux plug-ins tiers, tels que ElasticSearch asynchrone, PostgreSQL, Aiopg, PgAmdin, AsyncSSH, APscheduler, AIOCache, etc.

  1. Comment utiliser Tortoise ORM

Tout d'abord, nous avons besoin d'une base de données MySQL et d'un pilote PyMySQL. Si vous n'avez pas installé la base de données MySQL et le pilote PyMySQL, vous pouvez l'installer à l'aide de la commande suivante :

pip install pymysql

Si SSL n'est pas activé sur votre serveur MySQL, installez l'indicateur -use-optionssl=True pour utiliser la connexion cryptée SSH :

pip install pymysql[ssl]

Ensuite, nous voulons installer Tortoise ORM et ses dépendances :

pip install tortoise-orm

Afin d'utiliser Tortoise ORM, nous devons créer un Tortoise ORM objet. Dans cet objet, nous pouvons spécifier l'URL, le nom d'utilisateur, le mot de passe et le nom de la base de données pour se connecter à la base de données. Par exemple :

from tortoise import Tortoise

TORTOISE_ORM = {
    "connections": {"default": "mysql://user:password@127.0.0.1:3306/test_db"},
    "apps": {
        "models": {
            "models": ["__main__"],
            "default_connection": "default",
        },
    },
}

async def init_orm():
    await Tortoise.init(TORTOISE_ORM)
    await Tortoise.generate_schemas()

asyncio.run(init_orm())

Ici, nous définissons un dictionnaire TORTOISE_ORM qui précise l'URL et la liste d'applications pour la connexion à la base de données (dans ce cas, nous utilisons uniquement le module __main__). Nous avons ensuite créé une fonction init_orm dans laquelle nous avons initialisé l'objet Tortoise et généré le schéma de la base de données.

Ensuite, nous pouvons définir un modèle de base de données (Model), qui est une classe Python et doit hériter du modèle fourni dans Tortoise. Par exemple :

from tortoise import fields, models

class User(models.Model):
    id = fields.IntField(pk=True)
    username = fields.CharField(50, unique=True)
    password = fields.CharField(128)
    created_at = fields.DatetimeField(auto_now_add=True)
    updated_at = fields.DatetimeField(auto_now=True)

Ici, nous définissons un modèle User, qui a un champ identifiant, un champ nom d'utilisateur, un champ mot de passe et deux champs d'horodatage (heure de création et heure de mise à jour). Il convient de noter que notre champ id doit utiliser pk=True pour spécifier la clé primaire.

Maintenant, nous pouvons utiliser le modèle ORM pour accéder à la base de données. Par exemple, si nous voulons insérer un nouvel utilisateur dans la base de données, nous pouvons utiliser le code suivant :

async def create_user(username: str, password: str) -> User:
    user = User(username=username, password=password)
    await user.save()
    return user

Ici, nous créons d'abord un objet User puis appelons la méthode save() pour le sauvegarder Dans la base de données, l'objet User est finalement renvoyé. Nous pouvons également récupérer l'utilisateur de la base de données en utilisant le code suivant :

async def get_user_by_username(username: str) -> Union[None, User]:
    return await User.filter(username=username).first()

Ici nous pouvons utiliser la méthode filter de la classe User pour rechercher les utilisateurs par nom d'utilisateur puis appeler la méthode first() pour renvoyer le résultat du premier match.

  1. Plugin Tortoise ORM

En tant que framework ORM ouvert et flexible, Tortoise ORM prend en charge de nombreux plugins. Ce qui suit est une introduction à certains plug-ins :

(1) tortoise-orm[elastic] : prend en charge Elasticsearch asynchrone.

(2) tortoise-orm[asyncpg] : prise en charge de la base de données PostgreSQL.

(3) tortoise-orm[aiopg] : prise en charge de la base de données AioPg.

(4) tortoise-orm[admin] : Interface visuelle et outil de gestion.

(5) tortoise-orm[sqlite] : prise en charge de la base de données SQLite.

(6) tortoise-orm[aiofiles] : Prise en charge du stockage de fichiers.

(7) tortoise-orm[aioredis] : prise en charge de la base de données Redis.

(8) tortoise-orm[asyncssh] : prise en charge du client et du serveur SSH.

(9) tortoise-orm[aiohttp] : Prise en charge du framework Web utilisant la bibliothèque aiohttp.

Ces plug-ins peuvent être sélectionnés en fonction des besoins de votre entreprise. Vous pouvez choisir d'utiliser Tortoise ORM et des plug-ins adaptés aux besoins de votre entreprise pour améliorer l'efficacité de votre développement.

  1. Summary

Tortoise ORM est une bibliothèque ORM avec d'excellentes performances et facile à utiliser, avec des fonctions puissantes, une bonne évolutivité et un plug- dans le mécanisme. Il utilise une syntaxe asynchrone et peut prendre en charge un degré élevé de concurrence. Dans le même temps, Tortoise ORM fournit également une syntaxe similaire à Django ORM, qui est facile à utiliser. Dans les applications Python, cela peut considérablement améliorer l’efficacité du développement et aider les applications à interagir plus efficacement avec les bases de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn