Django est un framework Web Python open source. Il adopte le modèle architectural MVT (Model-View-Template) et divise l'application en trois parties : Modèle, Vue et Modèle. Parmi eux, Model est un composant de base du framework Django, utilisé pour définir et gérer les données. Cet article fournira une explication détaillée de Model dans le framework Django.
- Qu'est-ce que Model
Dans le framework Django, Model est le composant responsable de la définition, de l'encapsulation, de la sauvegarde et de la gestion des données. Les modèles sont principalement définis sous la forme de classes Python, et chaque modèle représente une table de base de données. Par exemple, si nous voulons créer une application de gestion des utilisateurs, nous pouvons créer un modèle nommé User, et sa table de base de données correspondante est la table nommée user.
Dans le Modèle, on peut définir les champs du tableau. Ces champs peuvent être des entiers, des chaînes, des dates, etc. Chaque champ correspond à une colonne du tableau. De plus, nous pouvons également définir certaines méthodes et propriétés d'exploitation et de gestion des données.
- Règles de dénomination des modèles
Les règles de dénomination des modèles dans Django sont relativement simples et suivent les règles de dénomination de Python. Le nom de classe du Modèle doit commencer par une lettre majuscule et être nommé en casse chameau, tel que :
class MyModel(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
Copier après la connexion
- Type de champ du Modèle
Dans le framework Django, Modèle définit une série de types de champs pour représenter les colonnes du tableau. . Les types de champs dans Django incluent les éléments suivants :
- CharField : type de chaîne ;
- IntegerField : type entier
- BooleanField : type booléen
- DecimalField : type à virgule flottante ;
DateTimeField : type de date et d'heure ; TextField : type de texte long. - En plus des types de base ci-dessus, Django prend également en charge de nombreux autres types, notamment ArrayField, ForeignKey, OneToOneField, etc., qui peuvent décrire les colonnes du tableau de manière plus granulaire.
Options de champ pour le modèle
- Dans Django, chaque type de champ a quelques options qui décrivent plus en détail les caractéristiques de chaque champ. Par exemple, le type CharField propose des options pour spécifier la longueur maximale, si elle est nullable, les valeurs par défaut, etc. Ces options peuvent se voir attribuer des valeurs lorsque le champ est défini, par exemple :
class MyModel(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField(default=0)
Copier après la connexion
Dans cet exemple, le type du champ nom est CharField, avec une longueur maximale de 50, le type du champ âge est IntegerField, et la valeur par défaut est 0.
Classe Meta du modèle
- Chaque classe Model peut définir une classe Meta pour une configuration ultérieure du modèle. Par exemple, vous pouvez préciser la méthode de tri du modèle, le nom de la table de données utilisée, la relation avec les autres modèles, etc. Une utilisation courante consiste à spécifier le nom de la table de données et le nom détaillé du modèle, qui sont utilisés en arrière-plan de gestion.
class MyModel(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
class Meta:
db_table = 'my_model'
verbose_name = "我的模型"
verbose_name_plural = "我的模型集合"
Copier après la connexion
Dans cet exemple, nous utilisons l'option db_table pour spécifier le nom de la table de données comme my_model, utilisons l'option verbose_name pour spécifier le nom chinois du modèle comme "mon modèle", et utilisons l'option verbose_name_plural pour spécifier le correspondant nom chinois pluriel comme « 我collection de modèles ».
Méthodes et propriétés du Modèle
- Dans Modèle, en plus de définir des champs, nous pouvons également définir certaines méthodes et propriétés pour exploiter et gérer les données. Par exemple, nous pouvons définir une méthode pour obtenir la tranche d'âge de l'utilisateur :
class User(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
def get_age_range(self):
if 0 <= self.age < 18:
return "未成年"
elif 18 <= self.age < 30:
return "青年"
elif 30 <= self.age < 50:
return "中年"
else:
return "老年"
Copier après la connexion
Cette méthode peut renvoyer une chaîne basée sur l'âge de l'utilisateur, indiquant la tranche d'âge de l'utilisateur, ce qui est pratique pour nous d'utiliser la logique métier. De plus, nous pouvons également définir certains attributs pour obtenir rapidement certaines informations sur un modèle. Par exemple :
class MyModel(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
@property
def full_name(self):
return "{}{}".format(self.name, self.age)
Copier après la connexion
Dans cet exemple, nous définissons un attribut full_name, qui renvoie une chaîne composée du nom et de l'âge de l'objet MyModel.
Backend de gestion du modèle
- Le framework Django fournit un backend de gestion généré automatiquement, qui peut être utilisé pour ajouter, supprimer, modifier et vérifier le modèle. Il nous suffit de faire les configurations pertinentes dans le fichier model/admin.py pour créer un backend de gestion pour chaque modèle.
from django.contrib import admin
from .models import MyModel
admin.site.register(MyModel)
Copier après la connexion
Dans cet exemple, nous utilisons la fonction admin.site.register() pour enregistrer MyModel dans l'arrière-plan de gestion, afin que MyModel puisse être utilisé en arrière-plan de gestion. Pour résumer, le modèle dans le framework Django est un composant important pour définir et gérer les données. Il peut nous aider à exploiter les données de manière pratique et à créer rapidement une application complète. En étudiant cet article, nous pouvons avoir une compréhension plus approfondie des différentes fonctionnalités de Model dans le framework Django, nous aidant ainsi à développer plus efficacement. 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!