réez et utilisez des objets Python ======
===== Instanciez un objet =====
Vous vous souvenez de not... ceci :
<code python>
class Rectangle:
def __init__(self, length, width, color="red"):
se... r créer des objets d’une classe spécifique. À la fin du chapitre précédent, nous avons écrit quelques constructeurs. Utilisons-les enfin pour créer un objet.
Voici un exemple qui crée u
ble dans la base de données ======
Dans le [[120_installer_flask|chapitre précédent]] vous avez appri... un projet. Avant de voir comment afficher la page index.html, créons une base de données dans laquelle... il s'agit d'un outil de gestion visuel dont le principal intérêt est l'interface graphique. Nous pouvons dire que les bases de données sont l'Excel des a
mplates [[http://flask.pocoo.org/docs/0.12/templating/|Jinja 2]] par défaut. Ce dernier nous permet d'utiliser certaines méthodes dans les templates pour nous simplifie... =====
Nous avons réussi à afficher le template ''index.html'' ainsi que les feuilles de style. Mais n
tes** – où les données ont une position et sont **indexables** – et des **dictionnaires** – où on attr... List = [5, 4, 3, 2, 1, "boom"]
</code>
<note warning>
Les dictionnaires se doivent d’avoir des clés *... s muables et immuables (en anglais)]] pourra vous intéresser.
</note>
Attendez une seconde, je ne peux pas modifier un entier (int) ? Si je dis que x = 5, je peux paramétrer x par
om/fr/|Openclassrooms]]
====== Ajoutez un peu d'intelligence ! ======
Vous avez vu, dans les chapit... ent créer une application Flask, la configurer et intégrer des fonctionnalités intéressantes telles que l'authentification par Facebook.
Dans ce chapitre... s allons utiliser la librairie Pillow (Python Imaging Library) pour générer l'image.
Commencez par l'
====== Ajoutez des tests avec Pytest ======
Afin de pouvoir utiliser [[https://docs.pytest.org/en/latest/|Pytest]], vous devez au préalable l'installer. Pour cela, utilisez PyPI en exécutant la commande suivante dans le terminal :
<code bash>
# installer avec la version la plus recente (-U == upgrade)
pip install -U pytest
</
lle est la plus claire ?**
- DatabaseField, StringDatabaseField, DateDatabaseField
- Level, Cave, Building
- Button, Start, Quit
++++ Réponse|
Choix 1. ... té ?**(Plusieurs réponses possibles).
- Les définitions de classe et de méthode sont chargées.
- ... omme tout autre code du fichier que vous avez originellement appelé. C’est pourquoi %%if __name__ ==
aires à l’aide du framework Pytest. Nous allons maintenant voir comment faire la même chose avec Unittest. Ne vous inquiétez pas, il n’y a presque pas de différence.
Comme pour Pytest, il faudra aussi définir une fonction qui contiendra le **scénario** et ... ts du module, nous devons appeler la fonction ''main'' du module ''unittest''. Ainsi, pour lancer l’en
précédents, j'ai volontairement laissé de côté l'interaction avec Facebook, autrement dit l'authentif... ook Developers au premier chapitre. Nous allons maintenant la configurer.
Rendez-vous sur le site de ... ne nouvelle fonctionnalité ? Vous ne voudrez certainement pas continuer à travailler avec l'application Facebook qui contient de vraies données.
L'idéal
-ce pas ? C'est le moment d'afficher le contenu d'index.html !
===== Comprenez l'architecture modèle... a bonne évolution, exactement comme dans votre ordinateur ! Imaginez que vous repreniez le projet d'une autre personne, ou que vous ouvriez le vôtre dans ... séparer les fichiers dans plusieurs dossiers distincts. Cela peut paraître un peu contraignant au déb
]].
====== Écrivez une classe Python ======
Maintenant que nous savons ce qu’est une classe, voyon... sent cette classe (ses « **attributs** ») sont définies en dessous dans sa portée (« scope », en anglais), avec une indentation supplémentaire de 4 espaces.
<note>
Un « scope » en Python est défini par le niveau d’indentation. Vous avez déjà écri
''FilmCassetteVHS'' hérite de ''FilmCassette''.
Ainsi, les attributs de ''Film'' **se retrouvent** da... ont généralement plusieurs hiérarchies d’héritage indépendantes pour les classes qui ne partagent **pa... de base commune de toute façon, non ?
Si ! Néanmoins, on ne fait généralement pas figurer ''Object'' ... mmes d’héritage, car il n’est pas très utile de l’inclure. Nous discuterons davantage de la modélisati
s différentes parties de votre code.
Cela pose moins de problèmes lorsque vous débutez en tant que développeur, mais dès que vous aurez besoin que quelqu’un d’autre utilise un projet, ou que v... sible**. Vous serez même surpris de voir à quel point il est **difficile** de revenir à un projet aprè... t important de structurer son code, car cela **diminue les efforts nécessaires à sa maintenance et à s
orte quel langage de programmation depuis un certain temps a déjà rencontré une **exception**. Une exc... omme ''NameError'', ''ZeroDivisionError'', ou ''IndexError'' – sont toutes des exceptions **intégrées** qui sont lancées par les éléments internes de Python lui-même.
Nous pouvons également lance
hub.com/OpenClassrooms-Student-Center/4425126-testing-python|projet Calculatrice sur GitHub]], et installez l’application.
Regardons un peu à quoi ressem... e simplement les quatre opérateurs de base pour l’instant (addition, soustraction, multiplication et division).
Le fichier ''main.py'' est le point d’entrée de l’application. Le f