[PYTHON] [Définition] Qu'est-ce qu'un cadre?

introduction

La partie de définition du framework qui fait l'objet de cet article se trouve dans ** la seconde moitié de l'article **, vous pouvez donc ignorer la première moitié.

Transition vers l'étude du cadre

Quand je recherchais ce qu'était venv, on m'a dit un site appelé "Que faire lors du partage de Venv avec Git avec PyCharm". Cependant, cela a été écrit dans la partie introductive au début.

Cette fois, j'ai décidé de développer un service avec Django de python avec mes amis, et il a été question d'utiliser l'environnement VirtualEnv (ci-après venv) comme environnement!

Peut venv être utilisé lors de l'utilisation de Django ...

Tout d'abord, qu'est-ce que Django? Wikipedia a déclaré:

Django est un ** framework d'application web ** implémenté en Python.

J'ai entendu parler d'un framework d'application Web. Ca c'était quoi… Quand j'ai recherché Flask sur Wikipedia, il a dit:

Flask est un ** framework d'application Web ** léger pour le langage de programmation Python. Il se qualifie lui-même de "microframework" car il réduit au minimum les fonctionnalités fournies en standard.

C'est tout! Flask est aussi un framework d'application web!

Comment utilisez-vous flask ... Par exemple ...

main.py


from flask import Flask

app = Flask(__name__, static_folder='.', static_url_path='')

@app.route('/')
def index():
    return app.send_static_file('index.html')

app.run(port=8000, debug=True)

cette? En d'autres termes, le framework d'application Web est-il une ** bibliothèque ** ...?

Cadre d'application Web

Alors, qu'est-ce qu'un framework d'application Web? Comme d'habitude [Wikipedia](https://ja.wikipedia.org/wiki/Web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 83% 95% E3% 83% AC% E3% 83% BC% E3% 83% A0% E3% 83% AF% E3% 83% BC% E3% 82% AF) ouvert.

Web Application Framework (Web Application Framework) est un ** framework d'application ** conçu pour prendre en charge le développement de sites Web dynamiques, d'applications Web et de services Web.

Cadre d'application ...? En savoir plus pour le moment.

Le but du framework est de ** réduire l'effort associé aux tâches courantes utilisées dans le développement Web **. Par exemple, de nombreux frameworks fournissent des ** bibliothèques **, ** moteurs de modèles ** (→ modèles Web) et ** gestion de session ** pour accéder aux bases de données afin de faciliter la réutilisation du code. Il y a aussi des choses.

C'est aussi une bibliothèque, mais elle ne semble pas être la seule.

Framework d'application (ou framework)

Qu'est-ce qu'un cadre d'application pour le moment, [Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 83% 95% E3% 83% AC% E3% 83% BC% E3% 83% A0% E3% Lire 83% AF% E3% 83% BC% E3% 82% AF).

Un framework d'application est un ensemble de ** bibliothèques (telles que des sous-programmes et des classes) utilisées pour implémenter la structure standard d'un logiciel d'application en programmation. Aussi appelé simplement ** framework **.

Après tout, c'est une bibliothèque! Alors pourquoi appelez-vous cela un cadre ...?

Quelle est la différence entre "bibliothèque" et "cadre" [Sujet principal]

C'est ainsi que nous en sommes venus à étudier ce qu'est un cadre. Pour répondre à la question de savoir ce qu'est un framework, comme mentionné ci-dessus, ** "il suffit de le reconnaître comme une collection de code écrit par quelqu'un, c'est-à-dire une bibliothèque" **.

Cependant, il est normal de penser qu'il y a une différence lorsque les mots sont divisés de cette manière. D'après cet article, la différence technique entre la librairie et le framework est en fait le terme ** "avec ou sans inversion de contrôle" **. Il est agrégé dans. Il s'agit de savoir si l'initiative est en «nous» ou dans «une collection de classes et de sous-programmes».

Autrement dit, lors de l'utilisation d'une bibliothèque, nous décidons quand utiliser une fonctionnalité de la bibliothèque, tandis que lors de l'utilisation d'un framework, le framework lui-même décide quand utiliser cette fonctionnalité. En d'autres termes, lors de l'utilisation d'un framework, il y a un «renversement de contrôle» dans lequel la personne qui contrôle le programme n'est pas la personne qui l'utilise, mais le programme lui-même.

Si vous lisez à nouveau l'article de Wikipédia sur le cadre d'application Web,

Le but du framework est de ** réduire l'effort associé aux tâches courantes utilisées dans le développement Web **. Par exemple, de nombreux frameworks fournissent des ** bibliothèques **, ** moteurs de modèles ** (→ modèles Web) et ** gestion de session ** pour accéder aux bases de données afin de faciliter la réutilisation du code. Il y a aussi des choses.

Il y a. En d'autres termes, en plus de fournir la bibliothèque, ** Template Engine ** (Le moteur de modèle est un logiciel ou un composant logiciel qui synthétise un modèle appelé modèle et des données d'entrée représentées par un certain modèle de données et produit un document de résultat (de Wikipedia). )) Et la ** gestion de session ** sera fournie, qui est une partie plus semblable à un cadre.

Pour des exemples plus détaillés, veuillez consulter cet article.

Parabole

Enfin, Quote est une bonne analogie pour la différence entre les bibliothèques et les frameworks.

J'utilise souvent ** house ** comme métaphore des concepts de développement web.

Par exemple, une bibliothèque, c'est ** comme aller chez IKEA **. Vous avez déjà votre propre maison, mais vous manquez un peu de mobilier. Mais je n'ai pas envie de construire une table à partir de rien. Dans un tel cas, si vous allez chez IKEA, vous pouvez ramener celui que vous aimez parmi les nombreuses options. C'est à vous de le choisir.

En revanche, la charpente est ** comme la construction d'une maison modèle **. Vous pouvez choisir une architecture et une conception limitées parmi plusieurs modèles. Vous ne pouvez essentiellement choisir que des sous-traitants et des modèles. Le vendeur vous indiquera également où vous pouvez intervenir.

Recommended Posts

[Définition] Qu'est-ce qu'un cadre?
Qu'est-ce qu'une distribution?
Qu'est-ce qu'un terminal?
Qu'est-ce qu'un pointeur?
Qu'est-ce qu'un arbre de décision?
Qu'est-ce qu'un changement de contexte?
Qu'est-ce qu'un super utilisateur?
Qu'est-ce qu'un appel système
Qu'est-ce qu'une fonction de rappel?
Qu'est-ce qu'une portée lexicale / une portée dynamique?
Qu'est-ce que le réseau neuronal convolutif?
Qu'est-ce que l'espace de noms
Qu'est-ce que copy.copy ()
Qu'est-ce que Django? .. ..
Qu'est-ce que dotenv?
Qu'est-ce que POSIX
Qu'est-ce que Linux
Qu'est-ce que clivoa, un framework pour le traitement ETL?
Qu'est-ce que le klass?
Qu'est-ce que SALOME?
Qu'est-ce qu'un chien? Volume d'installation de Django
Qu'est-ce qu'un chien? Volume d'installation Python
Qu'est-ce que Linux?
Qu'est-ce que python
Qu'est-ce que l'hyperopt?
Qu'est-ce que Linux
Qu'est-ce que pyvenv
Qu'est-ce que __call__
Qu'est-ce que Linux
Qu'est-ce que Python
Qu'est-ce qu'un chien? Django - Créer un modèle utilisateur personnalisé
Qu'est-ce qu'un chien? Défiez le modèle Django! Le volume
C'est un Mac. Qu'est-ce que la commande Linux Linux?
Qu'est-ce qu'un chien? Django - Créer un modèle utilisateur personnalisé 2
Dites-moi ce qu'est une cartographie équiangulaire, Python!
Qu'est-ce que le F-Score de Piotroski?
Qu'est-ce que Raspberry Pi?
[Python] Qu'est-ce que Pipeline ...
[Tutoriel PyTorch ①] Qu'est-ce que PyTorch?
Qu'est-ce que le réglage des hyper paramètres?
Qu'est-ce que JSON? .. [Remarque]
Qu'est-ce que l'apprentissage d'ensemble?
Qu'est-ce que TCP / IP?
Qu'est-ce que __init__.py de Python?
Qu'est-ce qu'un itérateur?
Qu'est-ce que UNIT-V Linux?
[Python] Qu'est-ce que virtualenv
Qu'est-ce que l'apprentissage automatique?
Qu'est-ce qu'un chien? Volume de transmission POST à l'aide de Django--forms.py
Qu'est-ce qu'un chien? Volume de démarrage de la création de l'application Django --startapp
Qu'est-ce qu'un chien? Volume de démarrage de la création de l'application Django - startproject
Qu'est-ce qu'un moteur de recommandation? Résumé des types
Qu'est-ce que Dieu? Créez un chatbot simple avec python
Pour moi en tant que débutant Django (2) - Qu'est-ce que MTV?
Quelle est la différence entre les liens symboliques et les liens durs?
Qu'est-ce que l'analyse de régression logistique?
Quelle est la fonction d'activation?