Apprendre à maîtriser Flask : La méthode professionnelle | Jorge Escobar | Skillshare
Recherche

Vitesse de lecture


  • 0.5x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 2x

Apprendre à maîtriser Flask : La méthode professionnelle

teacher avatar Jorge Escobar, Technologist, entrepreneur and open source fanatic

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      1:31

    • 2.

      Carte et exigences

      1:53

    • 3.

      Votre environnement de développement Python Flask

      0:38

    • 4.

      Installer Python3 sur Mac avec Homebrew

      1:04

    • 5.

      Installer Python3 sur Windows 10 avec Chocolatey

      1:32

    • 6.

      L'environnement de développement Python basé sur Cloud

      1:17

    • 7.

      Environnements virtuels

      0:38

    • 8.

      Configuration Windows et Mac Virtualenv

      2:09

    • 9.

      Configuration PythonAnywhere Virtualenv

      1:06

    • 10.

      Activation et désactivation

      1:08

    • 11.

      Installer Flask

      2:07

    • 12.

      L'éditeur de code

      0:43

    • 13.

      Bonjour le monde

      5:00

    • 14.

      Exporter l'application (Windows et Mac)

      1:53

    • 15.

      Exporter l'application (PythonAnywhere)

      3:14

    • 16.

      Déboguer notre application

      1:08

    • 17.

      Déboguer sur Windows et Mac

      0:53

    • 18.

      Déboguer sur PythonAnywhere

      1:26

    • 19.

      La pile de débogue

      1:00

    • 20.

      Router

      3:14

    • 21.

      Modèles

      6:38

    • 22.

      La fonction url_for() url_for()

      2:24

    • 23.

      Le dossier statique

      2:18

    • 24.

      Héritage de modèle

      4:24

    • 25.

      Introduction aux formulaires

      9:36

    • 26.

      Cookies et sessions

      5:46

    • 27.

      Gestion de configuration

      2:52

    • 28.

      Python Dot Env pour Windows et Mac

      2:12

    • 29.

      Python Dot Env pour Python Dot Anywhere

      2:10

    • 30.

      Une introduction aux bases une base de données

      5:07

    • 31.

      Installation de MySQL

      0:11

    • 32.

      Installing MySQL sur Mac avec Homebrew

      3:09

    • 33.

      Installing MySQL sur Windows avec Chocolatey

      2:45

    • 34.

      Configurer MySQL sur PythonAnywhere

      1:45

    • 35.

      MVC et le Mapper relationnel d'objets

      1:56

    • 36.

      Notre première application axée sur des données

      0:36

    • 37.

      Configuration d'application initiale sur Mac et Windows

      1:25

    • 38.

      Configuration d'application initiale sur PythonAnywhere

      2:17

    • 39.

      Nos bibliothèques d'applications

      1:02

    • 40.

      Les paramètres environnementaux

      1:47

    • 41.

      L'usine d'application

      2:41

    • 42.

      Créer des modules avec des plans bleus

      1:24

    • 43.

      Notre premier plan

      2:22

    • 44.

      Le modèle de compteur

      2:27

    • 45.

      Une introduction aux migrations

      5:29

    • 46.

      Opérations de base de données de la Shell

      5:59

    • 47.

      L'application de comptoir de page

      2:16

    • 48.

      Configurer notre infrastructure de test

      8:14

    • 49.

      Notre premier test

      3:49

    • 50.

      Flogger, un blog simple Flask

      1:02

    • 51.

      Configuration d'application initiale sur Mac et Windows

      1:02

    • 52.

      Configuration d'application initiale sur PythonAnywhere

      1:42

    • 53.

      Nos bibliothèques d'applications

      1:32

    • 54.

      L'application centrale

      1:55

    • 55.

      Configurer la base de base

      1:41

    • 56.

      Créer l'application Author

      1:10

    • 57.

      Le modèle d'auteur

      1:04

    • 58.

      La migration du modèle d'auteur

      1:36

    • 59.

      Tester le modèle d'auteur dans la Shell

      1:37

    • 60.

      Le formulaire d'inscription de l'auteur

      3:25

    • 61.

      Le modèle d'inscription d'auteur des auteurs

      4:05

    • 62.

      Validation de forme d'auteur

      4:32

    • 63.

      Une meilleure application de recherche

      2:48

    • 64.

      Traitement du formulaire d'inscription des auteurs

      2:44

    • 65.

      Vérifier la création d'enregistrements dans la base de données

      1:37

    • 66.

      Utiliser PDB

      3:08

    • 67.

      Valeurs de forme personnalisée

      1:47

    • 68.

      La connexion par l'auteur

      1:07

    • 69.

      Vérifier les identifiants de connexion dans la base de données

      2:08

    • 70.

      Session d'auteur

      2:04

    • 71.

      Connecter l'auteur

      0:44

    • 72.

      Messages Flash

      2:09

    • 73.

      Tester l'application d'auteur

      3:50

    • 74.

      Tests de connexion

      1:21

    • 75.

      La barre de Nav

      1:34

    • 76.

      Le modèle de blog et les modèles de catégorie

      8:09

    • 77.

      Le formulaire de publication de blog

      1:37

    • 78.

      Modèle de publication et vue de blog créer.

      2:01

    • 79.

      Traitement de base de données Publiez un blog Publier avec des données

      4:47

    • 80.

      Le décorateur de connexion

      3:27

    • 81.

      Article de blog et Markdown

      2:28

    • 82.

      Tests de publication de blog

      1:23

    • 83.

      Page d'accueil et pagination de Blog

      7:34

    • 84.

      Charger des images

      7:34

    • 85.

      Édition des publications

      5:42

    • 86.

      Supprimer les postes et écrire les tests Modifier et supprimer les tests

      1:45

    • 87.

      Tags et tests de blog et de tests

      7:27

    • 88.

      Filtrer par catégorie ou par étiquette

      4:42

    • 89.

      Le projet final

      1:04

    • 90.

      Conclusion

      0:23

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

549

apprenants

2

projets

À propos de ce cours

*** Apprenez le développement Flask à l'aide de la dernière version Flask 1.0.2 **

Ce cours vous apprendra à développer des applications web de backend comme les codes professionnels dans les startups startups en ligne. Comment puisje connais ? Je suis leader des équipes technologiques dans les grandes entreprises ainsi que des entreprises de startup à New York pendant 15 ans.

J'ai vu beaucoup de cours et de tutoriels gratuits, et je peux vous dire à 90 % enseigner de mauvaises habitudes tout en vous promettant de vous transformer en un “développeur Web web ».

Ce cours ne vous permettra pas de vous transformer en développeur backend professionnel après que vous le aurez terminé, il a beaucoup plus que les 4 heures de ce cours (et probablement des centaines d'heures doesn’t Ce cours vous permettra de vous entraîne, mais vous aurez une bonne base vous connaîtrez votre connaissance de votre entreprise avec Python, vous will la bonne méthode pour devenir un développeur Web de backend Web professionnels avec Python.

Le cours décrit un processus étape par étape de configuration de votre environnement, avec l'introduction Flask. Vous pouvez ensuite explorer des bases de données SQL en utilisant MySQL et vous montrer enfin comment développer une application blogging en utilisant tous ces learnings.

Et surtout, vous n'avez pas besoin d'un ordinateur pour suivre ce cours, si vous n'en avez pas une. Vous pouvez suivre ce cours depuis un Internet ou un café cyber, car nous apprendrons à utiliser à la fois des fichiers installés localement ou une plateforme de codage en ligne.

Les apprenants qui seront soumis à un projet final à la fin du cours, les étudiants qui termineront le projet final seront soumis à tous les projets de fin course

Si vous souhaitez apprendre à codifier zéro et sans connaissance en partage, mais faites en utilisant les meilleures pratiques de l'industrie afin de devenir un développeur Web Web à backend, ce cours est pour vous vous.

Le cours est divisé en sept sections :

  • Introduction

  • Votre environnement de développement

  • Dites-le le monde bon,

  • Configurer notre base de base

  • Un compteur visiteurs

  • Flogger : une application pour un blog personnel

  • Projet final

Le cours contient plus de 4 heures de tutoriels vidéo ainsi que le code source de toutes les leçons, afin que vous puissiez voir exactement ce à chaque étape.

Le cours peut prendre de 7 jours à un mois pour compléter en fonction du nombre que l'élève suit chaque jour.

Nous mettons également à jour constamment le cours, en ajoutant du contenu grâce aux commentaires de nos apprenants.

Alors arrêtez les recherches autour de votre cours et commencez par la bonne façon de devenir un développeur Web backend professionnel Python avec ce cours !

Rencontrez votre enseignant·e

Teacher Profile Image

Jorge Escobar

Technologist, entrepreneur and open source fanatic

Enseignant·e

From Zero is an educational project created by Jorge Escobar, a technologist, entrepreneur and open source fanatic with more than 15 years of experience in the development of web applications in New York City.

Jorge has worked in well established companies like Yahoo!, Univision and MongoDB and has also been the technical founding member of various successful tech startups that have received multiple rounds of venture capital.

The biggest problem Jorge has experienced during his career is finding well rounded developers and he interviewed hundreds of them for positions in the teams he was leading. A constant pattern (no matter if candidates came from a good university or had a few years of experience) was the lack of practical, real world knowledge.

That's why Jorge... Voir le profil complet

Compétences associées

Développement Développement Web
Level: Beginner

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Salut et bienvenue à de zéro à flasque. Mon nom est Jorge Escobar et ayant construit des applications python professionnelles pour les 10 dernières années et je veux maintenant vous apprendre à partir de zéro comment construire des applications flasques en utilisant les techniques utilisées dans les entreprises de technologie du monde réel. Flask est mon framework Python Web préféré. Ah, framework est un ensemble de bibliothèques et d'outils pour rendre le développement Web plus facile et plus efficace car il aborde toutes les fonctionnalités requises par la majorité des applications. Et nous allons qui se concentrer sur les parties créatives. À la fin du cours, vous aurez construit une fiole python basée sur une application de blogueur personnelle pilotée par vase en utilisant les techniques que je vais vous montrer. Vous devrez également développer une toute nouvelle fonctionnalité en utilisant les concepts que vous avez appris dans le cours. Le cours commence à partir des concepts Basic Flats et s'intègre lentement dans des domaines comme les fondamentaux de base de données . Construire le ou dans les modèles, les modèles, traitement de l'image et sécurisé formé le signe. Il y a beaucoup d'appartements, cours et de tutoriels là-bas, mais c'est le seul cours à suivre l'approche professionnelle que j'utilise dans tous mes cours. Donc, si vous êtes prêt à commencer votre voyage à partir de zéro pour devenir un développeur Web professionnel , venez me rejoindre. Rendez-vous dans le cours 2. Carte et exigences: Dans ce cours, vous apprendrez les fondamentaux hors flacon. Comment isoler vos dépendances à l'aide d'environnements virtuels. Ensuite, nous allons passer en revue les modèles de routage, les sessions et les migrations de bases de données avec une application de compteur de pages simple. Nous allons ensuite construire une publication en bloc avec l'enregistrement des auteurs, journalisation, les articles de bloc post ajoutant des photos, pagination et l'édition, et les principaux messages à chaque étape du chemin. Nous allons écrire des tests unitaires pour chacune des fonctionnalités de bloc, tout comme les développeurs professionnels. Alors, de quoi avez-vous besoin pour apprendre correctement ce cours ? abord, vous devez avoir une compréhension de base du langage Python. J' ai un excellent cours pour cela appelé de Zero à Python. Mais si vous connaissez les bases du langage Python, cela suffira. Deuxièmement, mettre en place un environnement de développement. Nous avons deux options dans ce cours. Vous pouvez installer Python dans ma suite localement sur votre ordinateur, ou vous pouvez suivre le cours en utilisant une plate-forme de développement en ligne où vous pouvez coder dans le cloud où vous êtes. Et troisièmement, vous devez être passionné par l'apprentissage professionnel de la façon de devenir un développeur de logiciels . Je suis sûr que vous avez vu des tutoriels en ligne ou même prendre des cours de programmation. Cependant, je vous préviens, plupart du matériel là-bas n'est pas mis à jour ou enseigne les concepts les plus avancés et utilise beaucoup d'outils de point et de clic et de concepts faciles. Si vous voulez apprendre le moyen facile. Ce n'est pas le cours pour vous. Mais si vous voulez apprendre et souffrir un peu au début mais sortir de l'autre bout avec des connaissances solides, alors vous avez trouvé le bon cours. 3. Votre environnement de développement Python Flask: comme je l'ai mentionné précédemment, nous avons deux options pour configurer notre environnement de développement de flasque python. La première consiste à installer fiole localement sur votre ordinateur. Cela signifie que vous avez un accès administrateur et que la mise en conserve des paquets volés. La seconde consiste à utiliser un environnement de développement python en ligne. Ici, vous allez vous inscrire à un service basé sur le cloud où vous pouvez coder partout où vous aimez votre travail à domicile, ordinateur ou même un cybercafé. Aucune installation n'est requise. Sélectionnez celui qui vous convient dans les leçons suivantes. 4. Installer Python3 sur Mac avec Homebrew: mon gestionnaire de paquets de fées pour le Mac est à la maison, et c'est ce qui va utiliser pour installer par téléphone trois entre volé homebrew. Il suffit d'aller sur l'humble site ci-dessous maintenant, Corbyn a fait écho sur la page d'accueil homebrew. Ouvrez maintenant une nouvelle fenêtre de terminal. Vous pouvez ouvrir le terminal en allant aux projecteurs. Recherche sur le terminal de saisie. Une fois que la fenêtre du terminal est ouverte, basez un code homebrew et appuyez sur Entrée. Attendez que tous les fichiers soient installés pour vérifier que tout a été correctement installé chez notre médecin de brassage. Maintenant, nous allons installer Python trois. Faire ça mord sur trois. Tapez simplement le breuvage suivant. Installez cinq sur trois. Attendez que le script se termine pour vous assurer que Python trois n'était pas encore correctement tapé Python trois Dash Capital V et c'est tout. Maintenant, nous pouvons commencer notre cours. 5. Installer Python3 sur Windows 10 avec Chocolatey: Mon gestionnaire de paquets préféré pour Windows est Sugar Lady, et c'est ce qui va utiliser pour installer par téléphone. Trois. Rendez-vous à la page d'installation de choc d'une dame et copiez le code là-dedans. Ouvrez maintenant un terminal Power Shell. Vous pouvez le trouver en appuyant sur Windows Plus R, puis en tapant Power Shell. Cependant, vous devez exécuter en tant qu'administrateur. Donc, faites un clic droit sur la fenêtre et sur le menu. Sélectionnez Exécuter en tant qu'administrateur, enregistrez la fenêtre Power Show et appuyez sur Entrée. Attendez que le programme est installé. Fermez la fenêtre Power Shell et rouvez-la à nouveau en tant qu'administrateur. N' oubliez pas chaque fois que vous utilisez Sugar Lady pour installer des paquets, vous devez exécuter power Shell en tant qu'administrateur. Dame technologique a été installé correctement en tapant Choco poussiéreux. Si vous voyez un numéro de version, vous êtes prêt à aller maintenant pour installer, mordre sur trois juste à Shoko. Installez dash y python trois. Fermez et rouvrez Power Shell en tant qu'administrateur pour vous assurer que les paramètres de chemin du package python sont appliqués pour vous assurer que Python trois a été installé correctement, tapez par tiret de téléphone sur Case V et c'est tout. Maintenant, nous pouvons commencer notre cours 6. L'environnement de développement Python basé sur Cloud: Je suis constamment à la recherche du meilleur environnement de développement de cloud python et je continue revenir en Python partout. Ils sont complètement libres, mais ils ont de très bons plans. Ils ont un service à la clientèle incroyable et ils ont ma suite et post un grand soutien intégré dans cette leçon. Nous allons voir comment nous créons notre compte python n'importe où pour démarrer le processus. S' il vous plaît utiliser le lien de référence suivant Toby entièrement ouvert avec ce lien, Je reçois une petite commission si vous vous inscrivez à un plan payant et cela m'aide à continuer à vous apporter plus de bon contenu. Merci À l'avance, lorsque vous atterrissez sur la page, vous verrez une page d'accueil Cliquez sur le bouton vert pour commencer le processus ici, vous serez représenté avec les différents plans. Aux fins de ce cours, le compte débutant est plus que suffisant. Si vous envisagez d'héberger un site personnel avec votre propre domaine ou une meilleure vitesse et performance, choisissez l'un des plans payants. Alors allez-y et créez le compte. vous sera demandé un nom d'utilisateur, un e-mail et un mot de passe. Assurez-vous de confirmer votre e-mail avec le lien qu'ils vous enverront, et c'est tout. vous arriverez au tableau de bord. Ne vous inquiétez pas encore pour ça. Nous allons commencer à couvrir la façon de faire toutes les choses dans les prochaines sections. 7. Environnements virtuels: l' un des outils fondamentaux de votre environnement de développement python est le concept d' environnements virtuels ou d'ins virtuels. Pensez à un environnement virtuel comme un boîtier dans votre ordinateur, où vous pouvez installer python, une bibliothèque supplémentaire ainsi que votre propre code sans interférer avec votre ordinateur en général, ainsi qu'avec d'autres projets. Ainsi, chaque projet sur lequel vous travaillez aura son propre environnement virtuel. Alors allons de l'avant et créons notre premier dossier de projets et environnement de retour en dépit toute manipulation pire. Où, peut-être est différent, s'il vous plaît scape toe cette section. 8. Configuration Windows et Mac Virtualenv: une chose que je recommande est que vous mettez tous vos projets dans un dossier de votre ordinateur . Ce n'est pas une bonne pratique de simplement avoir des projets dans différents dossiers de votre ordinateur. Dans Mac type LS dash ale barre oblique dans les fenêtres type L S C deux-points barre oblique inverse ou quelle que soit la lettre de lecteur que vous utilisez, Veuillez noter. Nous utiliserons Windows Power Shell comme terminal Windows. Si vous avez t slash oh joli dossier. C' est génial. Si vous ne le faites pas, vous pouvez le créer en utilisant make dear slash o p t. Ou rendre la peur backslash si jolie. Si vous obtenez une erreur sur les problèmes administratifs sur Mac, utilisez la pseudo commande comme ce pseudo faire leur barre oblique O p T. Vous aurez besoin du mot administratif rapide pour cela. Ensuite, assurez-vous de changer la propriété à votre utilisateur régulier. Vous pouvez voir votre utilisateur en tapant Komai, puis en faisant pseudo tonifier votre utilisateur slash Oh, dommage. Ok, maintenant c'est fait. Changez dans le répertoire à l'aide de la barre obèse CD dans Mac ou de la barre oblique inverse C D jolie dans Windows. Assurez-vous que vous êtes dans ce répertoire en tapant PWD et en vérifiant le chemin d'accès. Maintenant, nous allons créer un dossier appelé simple sur l'application de soulignement flasque de partition. Donc, faire leur simple sur le flacon de partition sur l'application de partition et changer à elle avec CD Simple sur le flacon de partition sur le score vers le haut va maintenant installer sont virtuellement. Effectuez les trois tirets python suivants M V E n v ri Envy dans Windows Python Dash M V E N V V E M V. Cela créera un dossier appelé V E M V, où les anciens paquets seront installés après avoir activé votre environnement virtuel. 9. Configuration PythonAnywhere Virtualenv: car Python n'importe où a des restrictions sur les autorisations de l'utilisateur. Il faudra créer notre répertoire en utilisant python n'importe où paramétré personnalisé. Tout d'abord, créons un répertoire. Où allons-nous installer tous nos enveloppes ? Normalement, j'utiliserais l'appétit slash, Mais puisque nous n'avons pas d'axe admin va juste en créer un dans notre répertoire personnel. Donc, assurez-vous que vous êtes dans votre répertoire personnel, puis créez une barre oblique o dossier PT ici et à l'intérieur de ce sont simples Sur le dossier de soulignement flasque partition dossier APP. Maintenant, nous allons créer notre Rachel et pour notre application, Donc, utilisez la commande suivante. Cela va créer un dossier dans votre répertoire personnel qui ressemble à ce qui suit juste en bas ce chemin quelque part également. Besoin dans une étape de fonctionnalité. Maintenant, tapez simplement l'activation afin que vous puissiez regarder à partir de votre virtuel. Je suis 10. Activation et désactivation: pour votre FMI virtuel. Toby Active. Vous devez taper la commande. Orteil activé. Activation Fait penser à l'ordinateur que le dossier principal pour installer les choses se trouve dans le dossier RV Envy et non dans le dossier des ordinateurs racine. Alors, comment l'activer ? Il suffit de faire source ve nb barre oblique douleur Activer sur le Mac v e n b bandes barre oblique Activer sur les fenêtres et travailler sur simple application flasque sur python n'importe où. Notez que vous avez maintenant une invite V M V ou une application flasque simple dans le chemin de votre dossier. Ne pas activer le virtuel. Et c'est l'une des principales sources de problèmes pour les nouveaux développeurs. Donc, avant de coder ou d'installer quoi que ce soit, assurez-vous de voir cette invite. Sinon, activez votre virtuel lui. Donc l'activation. Il suffit de taper l'activation dans toutes les plates-formes. Remarquez comment ils sont rapides Disparus. Maintenant, nous sommes prêts à installer flasque 11. Installer Flask: il est temps d'installer la fiole pour notre projet. Puisque nous ne voulons pas que Flash soit installé à l'échelle du système, nous utiliserons notre virtuel. Je suis donc assurez-vous de changer de répertoire à votre répertoire de projet en faisant une barre oblique de CD o pt slash simple application flasque dans Mac CD. Oh, assez simple bouchon flash dans Windows ou C D o. assez simple bouchon flash dans par téléphone n'importe où. Maintenant, rappelez-vous, à ce stade, nous devons activer le virtuel, et sinon nous allons installer flasque pour tous les utilisateurs de notre ordinateur. Alors, faites la source. Ben étant activé sur les scripts mac dot vamps. Activez sous Windows ou travaillez sur simple capuchon en chair par téléphone n'importe où. Assurez-vous que vous voyez le rituel et Flavell important. C' est, au début, hors de l'invite du terminal. Alors, comment installer des paquets dans un environnement virtuel pour cette utilisation ? La bibliothèque papier est l'index de paquets Python, et elle a des milliers de paquets open source disponibles pour vous d'utiliser à partir de Twitter. AP I Connecteurs Toe Web grattoirs, cadres Toe Web Il est vraiment un trait d'union hors. meilleurs outils. People vous permet d'installer des versions spécifiques de ces bibliothèques à l'aide d'un numéro de version. Pourquoi est-ce important ? Le problème principal est qu'en tant que développeurs de grandes bibliothèques avec plus de fonctionnalités, parfois ces changements peuvent devenir un problème pour notre code car ils peuvent changer la façon dont vous interagissez avec la bibliothèque. Il y a aussi des problèmes si nous avons plus d'une bibliothèque et qu'ils se parlent les uns aux autres, donc nous allons utiliser les numéros de version pour toutes les bibliothèques installeront dans nos projets et flask ne fait pas exception. Nous allons donc installer flask version 1.0 point 2 dans un environnement virtuel afin de taping stall flask égal 1.0 point deux. 12. L'éditeur de code: il y a beaucoup de bonnes options pour les éditeurs de devis. Certains des plus populaires incluent le texte sublime par charme et le code visuel studio. Je recommande certainement d'essayer certains d'entre eux quand vous avez le temps et de voir lequel vous vous sentez le plus à l'aise avec. Cependant, pour ce cours, j'utiliserai Adam. Adam est vraiment simple et puissant en même temps et l'utilise depuis un certain temps, donc je me sens à l'aise avec. Alors allez-y et installez votre co-éditeur et nous commencerons à construire notre application hello world prochaine. 13. Bonjour le monde: donc créons un fichier. A l'intérieur sont simple dossier d'application flasque. Mais d'abord, nous devons activer nos environnements virtuels pour Mac, ouvrir le terminal et CD 20 p. T. T. Simple chair cap. Ensuite, faites la source. Vend étant activé pour activer virtuel et sur les fenêtres à la ville arrière slash o p. D. Backslash simple Plassat. Puis faire vamp slash scripts slash Activer par téléphone n'importe où Do CD jusqu'à ce que le chapeau de chair assez simple , puis faire la guerre Khan. Casquette simple en chair. À partir de ce moment, quand je dis activer votre virtuel et s'il vous plaît suivez leurs instructions précédentes pour votre système d'exploitation actuel. Maintenant, nous allons créer un nouveau fichier appelé Hello dot b y avec notre éditeur de code à l'intérieur du flacon simple APF vieux pour Windows et Mac type adam dot Cela ouvrira l'éditeur Automne avec ce dossier sélectionné. Si vous êtes un Mac et que cette commande lance un air comme Adam n'a pas été trouvé, assurez-vous juste de quitter l'application atom, ouvrez à nouveau et sélectionnez installer les commentaires shell. Alors, comment pouvons-nous créer hello dot B y sur Windows et Mac ? Sélectionnez d'abord le dossier de l'application Flask simple avec votre bouche, puis appuyez sur la touche minuscule dans le champ de saisie. Tapez hello dot p y. Notez que votre dossier a peut-être contracté simplement en cliquant à nouveau pour le développer et voir le contenu par téléphone n'importe où. Appuyez sur l'icône hamburger en haut à droite et sélectionnez les fichiers. Repérez ensuite le dossier O. P. T. P. T.dans la section du répertoire. Cliquez dessus, puis cliquez sur le lien de l'application flasque simple. Assurez-vous que vous avez la barre oblique du chemin complet à la maison slash votre nom d'utilisateur slash oh pt slash simple bouchon flash en haut à gauche. Enfin, la section du fichier, entrez Hello Duh p y et cliquez sur le bouton nouveau fichier. Ok, nous sommes prêts à coder notre première application de flacon sur le type de première ligne du flacon d'importation. Cela importe la classe de flasque dans son fichier. Nous devons maintenant créer une instance de la classe que nous appellerons cette application d'objet. AP est égal à la fiole. En allant ce nom de base sur le score sur l'avis de score, nous passons sur ce score dans ce nom de cour, soulignant le score comme paramètre. C' est un python construit dans la magie, viable qui indique à flask quel module ou paquet cela fonctionne à partir de ce qui permet à flask savoir où chercher des dossiers connexes de notre application. Si une ligne vide sur maintenant taper à APP, cette barre oblique le signe at ici est appelé un décorateur. Et essentiellement, cela nous permet de modifier. La fonction tapera en dessous. Nous avons appris plus sur les décorateurs. Plus tard, sur la route, décorateur indique à la fiole quel sera votre dysfonction L. Dans ce cas, il s'agit du dossier racine ou d'une barre oblique. Nous créons maintenant notre fonction, qui revient juste. Bonjour, le monde. Retour au navigateur Death. Bonjour, retour du monde. Allô ? Travaillé. Et c'est tout. C' est à quoi ressemble le fichier entier à l'automne. Éditeur. Remarquez comment il y a un petit cercle bleu sur le robinet. Cela signifie que ce fichier n'a pas été enregistré. Appuyez sur le contrôle plus s sur Windows ou sur la commande Plus s sur Mac pour l'enregistrer sur python n'importe où. Remarquez comment il est dit sur les changements sûrs en haut à côté du faux chemin, appuyez sur le bouton de sauvegarde vert pour sauver le feu. À partir de ce moment, vous serez en mesure d'obtenir le code à l'écran en utilisant le code de zéro plus court. Vous verrez un petit curseur comme celui-ci apparaître chaque fois que nous avons un nouveau code à ajouter . Il suffit de taper le code dans votre navigateur et vous serez redirigé vers mon dépôt de hub enfant. À ce stade, vous pouvez copier et coller le code à partir de là, bien que je trouve mieux si vous codez réellement le long afin que vous puissiez vous habituer à votre éditeur et commencer à former votre cerveau à penser comme 1/4. Maintenant, nous allons voir comment exécuter cette application et semer dans notre navigateur. Nous avons deux leçons différentes, selon que vous êtes sous Windows ou Mac ou si vous êtes dans le bison n'importe où, échappé à celle qui vous convient. 14. Exporter l'application (Windows et Mac): Voyons comment nous exécutons cette application sur Windows ou Mac. Une fois de plus, assurez-vous d'avoir votre M virtuel activé pour que le mot ve envy apparaisse sur la commande . Demander. Si elle ne s'active pas pour pouvoir exécuter l'application, nous devons d'abord définir un environnement viable pour indiquer à flask quelle application nous voulons exécuter , puis utiliser une fiole. Iran Command dans Windows Power Shell a dit que l'environnement viable avec le signe dollar de commande suivante E N v flasque flacon soulignement app égale Bonjour p y. Dans ma quête, vous avez dit en faisant flacon d'exportation sur cette merde égale bonjour. Nous pouvons maintenant exécuter l'application en tapant la commande suivante flask. Exécuter maintenant Ouvrez votre navigateur. Détachez. Payez cet euro http ! Slash du côlon 1 27.0 point zéro Ce deux-points 5000 que 1 27.0 C'est votre autre. Il est également appelé hôte local, et c'est une adresse spéciale I p qui renvoie à votre propre machine. Vous devriez maintenant voir la chaîne Hello world ici dans votre navigateur. C' est ça. Notre première application de flacon. Démarrez l'application en revenant au terminal et en appuyant sur le contrôle. Voir sous la tâche en cours d'exécution, Gardez à l'esprit que la variable d'environnement de l'application flask sera effacée lorsque vous fermez votre terminal. Donc, si vous vous arrêtez ici ou redémarrez votre terminal ou votre ordinateur, vous devez rétablir l'environnement viable. Nous verrons comment nous pouvons le faire automatiquement plus tard dans le cours. 15. Exporter l'application (PythonAnywhere): pour exécuter notre application sur python n'importe où nous devons nous inscrire. Ah, application Web sous le système. Donc, à partir du menu de navigation, cliquez sur Web et vous atterrissez sur l'écran. Cliquez sur le bouton Ajouter un nouveau site Web. Vous serez informé de l'euro qui vous a été attribué. Habituellement, cela est réduit son nom dot python partout dot com Pour les comptes gratuits, c'est la seule option les comptes payés peuvent utiliser des peintures murales personnalisées. Cliquez sur Suivant. Dans l'écran suivant, vous sélectionnez un framework Python Web. Depuis que nous avons installé Flash Nous-mêmes via sont Very Talev Select Configuration manuelle. L' écran suivant demande quelle version Python utiliser. Sélectionnez Python 3.6 et cliquez sur suivant les prochaines discussions vertes sur la création du fichier de configuration A W S G I . Ne vous inquiétez pas trop de ce que je veux dire maintenant. Pensez-y comme un fichier qui indique au serveur python n'importe où quelle application doit être associée ID à votre euro par téléphone n'importe où va créer un ws. g par défaut pour que vous l'ajoutiez sur l'écran suivant. Cliquez sur Suivant. Maintenant, nous sommes dans la page de configuration. Il y a quelques choses à faire ici d'abord remarqué le meilleur avant la section date. Si vous avez un plan gratuit, cela signifie qu'au moins une fois tous les trois mois, vous devez appuyer sur ce bouton jaune qui se lit, Exécuter jusqu'à trois mois à partir d'aujourd'hui. Python n'importe où fait cela pour s'assurer que les utilisateurs qui utilisent les serveurs le font activement . Ensuite, sur la section de code, vous devez sélectionner la source appelée répertoire, Cliquez sur le lien bleu et entrez le chemin suivant, remplaçant le nom d'utilisateur par votre propre nom d'utilisateur. Slash Accueil slash nom d'utilisateur slash o p t symbole barre oblique. Ensuite, sur le fichier de configuration WS G I, vous devrez remplacer le contenu du fichier par le code suivant. Il suffit de cliquer sur le lien bleu et d'entrer cet extrait, remplaçant le nom d'utilisateur par le vôtre. Utilise son nom. On a presque fini maintenant. Rendez-vous à la section virtuelle dans et sélectionnez le lien bleu et il suffit de taper symbole application flasque par téléphone n'importe où va commander, complète avec le chemin complet lorsque vous appuyez sur Entrée. Donc, le tout devrait ressembler à ceci, mais avec votre propre nom d'utilisateur. Enfin, allez en haut de la page et cliquez sur le bouton vert sous la section de rechargement. Maintenant, cliquez sur le bleu, votre URL en haut, ou entrez votre nom d'utilisateur que python n'importe où point com Dans le navigateur, vous devriez voir le texte Hello World. Si quelque chose ne fonctionnait pas, vérifiez simplement les étapes et assurez-vous que vous ne manquez pas quelque chose. D' habitude, c'est un petit détail idiot qui vous manque. 16. Déboguer notre application: une autre chose passera le plus de temps en tant que développeur de logiciels sera de trouver des problèmes avec votre code et celui de votre équipe. Également connu sous le nom de boîte, le mode de réservation est un paramètre. Vous passez l'environnement flasque de sorte que lorsqu'il rencontre une erreur inattendue, il vous donne plus d'informations sur les conditions qui déclenchent ce problème. Comme vous le savez peut-être déjà, Flask fonctionne en plus de python avec d'autres bibliothèques qui aident. Si vous visualisez votre application à un certain moment, vous verrez une sorte de pile de crêpes. Et quand une erreur se produit, vous devez voir une coupe transversale toutes les erreurs de votre code jusqu'à Python. C' est pourquoi, lorsqu'une erreur se produit, vous serez présenté avec ce qu'on appelle la pile d'erreurs. Pour activer le mode aubaine, nous allons définir un paramètre de configuration appelé Bug on Flask. Il y a deux façons de le faire. L' un pour Windows et Mac et l'autre sur python n'importe où. Échapper à la section qui s'applique à vous 17. Déboguer sur Windows et Mac: ouvrez votre terminal, activez votre environnement et procédez comme suit sur les fenêtres Donateur Signez le flacon du côlon Envy sur cette cour. Le débogage est égal à un et sur Mac exporter flasque sur la partition, débogage est égal à un. Enfin, redémarrez la fiole en faisant la fiole. Courir. Maintenant, nous allons introduire une erreur sur le but en ligne. Six. Insérez le X suivant équivaut à un guillemet plus A. Dans le guillemet. Cela produira une chaîne plus inter votre erreur, Sauvegardez le fichier, puis rechargez le 1 27 sérieux ici un froid sur 5000 page sur votre navigateur. 18. Déboguer sur PythonAnywhere: pour activer le mode de réservation dans Python n'importe où vous devez modifier le fichier de whisky sur la section de code Web hors tableau de bord et définir le paramètre de point d'écorce de l'application en ligne. Huit. Désactivez le fichier sur True Enregistré un fichier. Maintenant, revenez à votre bonjour p WiFi va introduire une erreur sur le but en ligne. Six. Insérez le X suivant équivaut à un devis plus un devis de fin. Enregistrez le fichier sur Python n'importe où. Il y a un bouton de rechargement du serveur pratique éditeur non souillé. Je suggère que lorsque vous travaillez avec python n'importe où vous devez appuyer sur votre navigateur dans l'un, vous auriez votre éditeur de manteau et de l'autre, votre page Web publique. Chaque fois que vous effectuez une modification co, enregistrez le fichier. Appuyez sur le bouton de rechargement des serveurs, puis allez dans l'onglet avec votre application et rechargez la page. Un mot de prudence. Lorsque vous avez terminé le débogage, je suggère le retour du moteur de débogage. Ne laissez pas le paramètre activé pendant de longues périodes car les pirates malveillants peuvent potentiellement extraire des informations sur votre base principale en regardant les plateaux empilés de débogage 19. La pile de débogue: Lorsque vous rechargez la page, vous verrez quelque chose comme ceci. C' est une longue page, et lorsque vous faites défiler vers le bas, vous verrez l'erreur signalée en bas. Si vous voyez un peu plus haut, vous verrez que la fiole vous indique le numéro de ligne et la déclaration qui a produit l'air. Parfois, vous aurez de la chance comme ceci sur la ligne avec le problème est à la fin. D' autres fois, il sera au milieu. Même si vous ne comprenez pas toutes les erreurs dans toutes les piles, vous devez essayer de rechercher le code que vous avez écrit. Je ne connaissais pas celles sur les anciennes bibliothèques. C' est plus de l'art que de la science. Mais au fur et à mesure que tu t'entraînes, tu t'amélioreras. Avant de passer à la leçon suivante. Allez-y et élite ligne six pour que notre application soit de retour à la normale. N' oubliez pas d'enregistrer le fichier 20. Router: la méthode d'envoi des utilisateurs à une partie spécifique du code basée sur l'Ural est appelée Routing in Flask. Ceci est fait à travers le décorateur de route dans notre exemple. Plus tôt, nous avions la route principale pour exécuter la fonction hello world. Déplaçons cette fonction orteil une autre route et créons une nouvelle fonction appelée Index. Donc modifié le script après ligne pour orteil ressemble à ceci. Enregistrez le fichier dans les fenêtres Macon. Vous n'avez pas besoin d'arrêter et de démarrer Flask. La commande Flash Theron récupère automatiquement les modifications. Il suffit de se diriger vers le navigateur et de recharger la page par téléphone n'importe où. Ce n'est pas le cas. Alors n'oubliez pas d'enregistrer et de recharger le serveur d'abord, puis de vérifier votre navigateur attaqué. Maintenant, vous verrez le texte dans l'expérience sur la route. Mais maintenant, si vous allez à la barre basse, vous verrez notre vieux monde bonjour à la chaîne de l'Oural. Nous avons l'itinéraire peut également avoir plusieurs parties. Ainsi, par exemple, vous pouvez affecter le monde slash jaune you earl slash avec la fonction hello et il fonctionnerait de la même manière. Cependant, une caractéristique intéressante apprendra maintenant est le concept de parties virales dans l'euro. Donc, par exemple, disons que nous voulons saisir tout ce qui se trouve dans la deuxième partie de cet euro et l'utiliser dans la fonction. Modifier la ligne huit et après l'orteil cela a sauvé un fichier et charger un euro slash lo monde slash. Comme vous pouvez le voir, la deuxième partie de l'euro s'est vu attribuer le nom viable sous hors. Une fois que vous avez cela, nous pouvons le passer à la fonction hello comme argument. Que se passe-t-il si nous passons un numéro dans l'euro ? Essayez-le. Cela fonctionne parfaitement bien parce que la fiole est en train de convertir cet orteil une force que nous pouvons dire explicitement flasque. Nous nous attendons à ce que ce ministère soit un certain genre. Par exemple. Disons que nous attendons un entier après Bonjour. Nous pouvons modifier le code pour lire comme suit. Enregistrez le fichier et sur votre navigateur type barre oblique jaune slash quatre. On s'est mis à l'antenne. Peux-tu deviner ce qui s'est passé ? C' est vrai. Maintenant, la planète viable est un entier et nous ne pouvons pas faire un entier et une chaîne. Donc, pour revenir à la chaîne de bonjour, nous devons convertir l'orteil de la planète une corde. Nous pouvons utiliser la fonction f pour cela. Leslie, Si vous essayez de passer une chaîne comme slash lo monde slash, vous obtiendrez un quatre se permettre pas trouvé là. Puisque la fiole soupçonne un entier dans la deuxième partie de l'euro, nous pouvons affecter des parties virales à un flotteur entier de chaîne et à quelques autres types. Vous pouvez aller de l'avant et regarder ça sur la documentation de la fiole. 21. Modèles: au fur et à mesure que vous construisez votre application, les pages ont été renvoyées à l'utilisateur commenceront à devenir de plus en plus compliquées. Il serait plutôt désordonné s'il avait chaque fonction avec un retour. Viable plusieurs dizaines de lignes de long. Donc, la plupart des frameworks humides fonctionnent en utilisant un modèle de conception appelé Model View Controller ou M V C. Les patrons de signes sont un sujet pour un autre cours, mais sachez simplement qu'il existe quelques meilleures pratiques pour aborder les problèmes informatiques qui sont bien connus afin que vous n'avez pas à réinventer la roue au fur et à mesure que votre carrière avance. C' est bon de se familiariser avec eux, alors écrivez cela sur votre liste de lecture à NBC. Ce modèle préconise fondamentalement que votre application est divisée en trois composants principaux . Un modèle, qui est un fichier ou un ensemble de fichiers, qui sont dédiés à la lecture et à l'écriture à partir de votre base de données. Vue, qui est un fichier ou un ensemble de fichiers traitant de la couche de présentation dans les applications Web. Ce serait HTML, CSS et JavaScript et un contrôleur, qui est le fichier ou l'ensemble de fichiers qui coordonnent les demandes de l'utilisateur et charge et enregistre les données en utilisant les modèles et les présente en utilisant les vues dans flask. Les vues de la morale M V C sont traitées par des modèles. Les modèles sont des fichiers qui ont comme entrée un ensemble de variables appelées contexte et produisent généralement du HTML. Revenons à notre script. Votre environnement virtuel doit être activé et la moitié du flasque doit être en cours d'exécution. Créons un dossier de modèles. Flask a quelques répertoires spéciaux qu'il recherche dans chaque application et modèles est l'un d'entre eux. Dans Windows et Mac, allez dans votre éditeur Adam, sélectionnez une simple fiole, un dossier et appuyez sur Maj A. Vous verrez une fenêtre contextuelle qui vous permet d'entrer le nom hors du dossier, entrez des modèles Lorsque vous appuyez sur la touche la première fois qu'il peut contracter et ne pas afficher les dossiers. Il suffit de cliquer dessus à nouveau pour le développer. Vous devriez maintenant voir le dossier des modèles là-bas par téléphone n'importe où. Allez dans votre menu hamburger en haut à droite et sélectionnez les fichiers dans les répertoires. Sélectionnez oh, pitié, puis simple application flasque, puis entrez des modèles dans la section du répertoire et cliquez sur le nouveau répertoire. Mais nous allons maintenant créer un fichier el extrême pour la page d'index dans Windows et Mac cliquez sur le dossier Modèles et maintenant appuyez sur un Vous verrez un pop-up pour entrer le nom d'un nouveau fichier le dossier Modèles, vous verrez le répertoire dans le champ d'entrée. Assurez-vous de juste après l'index HTML et appuyez sur Entrée par téléphone n'importe où. Vous devriez toujours être sur le dossier. couteau. Assurez-vous que le chemin d'accès en haut à gauche indique Accueil votre nom d'utilisateur. Oh, Petey, Flasque simple, application, modèles, puis index droit html sous la section fichiers, puis cliquez sur le bouton nouveau fichier . Nous pouvons maintenant entrer du contenu HTML ici, donc nous allons juste écrire les h une page d'index suivante et H un les éléments ouverts et fermants h un . Ils notent que ce discours d'index de chaîne est un niveau d'en-tête 1, qui est le plus grand. Notez que le premier élément n'a pas de barre oblique sur le 2e 1 fait. Cela indique au HTML que la première est la balise d'ouverture et la seconde est la fermeture intacte. Je n'entrerai pas dans les détails sur HTML, mais si vous suivez, vous en aurez le coup. Vous pouvez également lire une introduction rapide vers les femmes dans le site Web W trois écoles dot com Enregistrer le fichier et maintenant revenir à la Hello p p Y. Et au lieu de retourner la chaîne de page d'index en ligne, six fera le retour suivant. Rendez sur l'index du modèle de partition html une dernière chose en ligne. Un Quand entre le port pour rendre la fonction trempée donc après la fiole d'importation, aracoma et ajouter le modèle de rendu de sorte que la ligne entière ressemble à ceci de flacon Importer virgule. modèle de rendu enregistre maintenant le fichier et se dirige vers votre itinéraire. Euro. Assurez-vous que c'est celui qui n'a pas de pièces. Après la barre oblique, vous devriez voir la page d'index affichée sur le navigateur dans Beit On n'importe où. Rappelez-vous, vous devez enregistrer, puis cliquez sur le bas du serveur de rechargement. Une fois qu'il y avait Seigneur est achevé. Allez sur votre site. Poignarder et naviguer orteil la route. L' Europe. Comme vous pouvez le voir, l'utilisateur voit ce que nous avons écrit dans le fichier HTML, et maintenant nous pouvons laisser ce fichier gérer toute sortie liée et garder le routage et la logique plus anciens dans le fichier python. Mais voyons maintenant comment nous pouvons transmettre des informations au modèle en fonction de l' entrée de l'utilisateur . L' orteil ZPass viable Le modèle sont collectivement appelés contexte. Dans la deuxième route, nous avons la fonction hello planet qui produit quel que soit le nombre qu'ils utilisent une route sur la deuxième partie de l'euro. Donc, nous allons créer un autre modèle sur le dossier des modèles fera l'affaire. Bonjour, porte ext. E-mail avec le HTML suivant, je l'ai appelé t sur la planète de score. Pour qu'il soit clair que ce sont les modèles Planet feu. Remarquez comment nous utilisons des crochets doubles bouclés au lieu de celui que nous utilisons pour la chaîne F. Maintenant, le modèle va imprimer quelle que soit la valeur Off T planète qu'il obtient dans le contexte. Alors, comment passer le contexte au modèle ? Modifier mensonge 10 Avec ce qui suit, nous attribuons les modèles T planète viable. Toe la valeur de la planète viable. Nous obtenons de la partie euro dire fichiers de vote et la tête à l'euro en utilisant le nombre que vous voulez. Maintenant, essayez de changer le nombre à autre chose et en appuyant sur. Entrez. Vous verrez les changements de sortie hello 22. La fonction url_for() url_for(): une chose que vous ferez souvent vos modèles et contrôleurs sera de mettre des liens vers d'autres pages. Donc, par exemple, ajoutons un lien à partir de la page d'index toe le Hello Paige dans notre application. Modifiez l'index html en ajoutant le lien suivant à la ligne trois huit. Ref est égal à barre oblique 4. Bonjour barre oblique Cette balise HTML est appelée une ancre ou, et il vous permet de lier la page en cours à une autre page, enregistrer le fichier et la tête à la page d'index. Tu devrais voir ça. Si vous cliquez sur le lien Hello, vous prenez la route Hello. Mais disons maintenant que nous comprenons que nous voulons changer l'euro de cette fonction pour réseau ainsi en ligne. Huit. Allez-y et changez l'itinéraire pour lire l'itinéraire, barre oblique en lisant barre oblique dans la planète. Enregistrez le fichier et sur votre navigateur, allez à la page d'index et cliquez sur le lien Hello. Vous aurez un air maintenant. Il serait facile de mettre à jour le modèle Hilo html avec une nouvelle barre oblique de classement euro, mais le plus souvent que vous n'aurez pas des dizaines ou des centaines de liens comme celui-ci dans votre application. Donc, au lieu de coder dur, l'Ural Flax fournit une fonction appelée euro quatre qui nous permet de lier l'euro avec un nom de fonction au lieu de l'itinéraire. Comme les noms de fonction ne changeront souvent pas autant. Alors faisons ça. Aller à l'index HTML et remplacer la référence H par ce qui suit un trajet est égal à quatre euros. Salut, Coma Planet équivaut à quatre. Bonjour barre oblique Enregistrer le fichier et aller à la page d'index sur le navigateur et recharger. Si vous passez la souris sur le lien et regardez l'adresse sur la barre inférieure du navigateur, vous remarquerez que l'euro est correctement codé. Cliquez dessus et vous obtiendrez la page bonjour sans héritiers. Revenez maintenant au fichier Hello P Y et changez le rocher pour bonjour. Comme si Enregistrez le fichier et rechargez la page d'index. Vous verrez que le lien fonctionne parfaitement bien et génère maintenant l'euro mis à jour automatiquement 23. Le dossier statique: Il y a certains fichiers qui n'ont pas besoin d'être traités par notre contrôleur parce qu'ils sont toujours les mêmes. La majorité de ces fichiers sont centrés sur la présentation comme CSS ou les fichiers judiciaires Jalous qui améliorent l'interaction de l'utilisateur. Flask réserve un dossier pour ce appelé statique. Et tout comme le dossier Modèles, c'est un dossier spécial. Nous voulons que Dive marche sur ces types de fichiers dans ce cours, mais disons que nous voulons faire le texte. Nous avons un peu plus beau sur notre site. CSS Files nous permet de le faire en affectant des fonds et des couleurs aux balises, alors créez un dossier statique sur la route APS, comme nous l'avons fait avec les modèles. Maintenant, à l'intérieur du dossier, créez un fichier à base de point CSS et entré ce qui suit. Cela fera de notre H une taxe Toby Red et avec une police verdana, enregistrez le fichier. Et maintenant, changeons notre index html pour inclure le nouveau fichier CSS de base. Nous pouvons le faire en changeant le fichier pour ressembler à ce qui suit. Enregistrez le fichier et rechargez votre navigateur. Il devrait ressembler à ceci si pour une raison quelconque il ne le fait pas, c'est parce que les fichiers statiques sont souvent en espèces par le serveur et le navigateur, que votre navigateur et redémarrez le serveur de fiole et ouvrez à nouveau l'euro. Même si cela fonctionne techniquement, il y a un problème potentiel ici, tout comme les URL de page peuvent changer. L' emplacement du dossier statique peut également changer. L' application peut pointer vers un autre répertoire dans le serveur ou un autre serveur . Pour cette fiole a une méthode spéciale euro quatre qui définira l'euro approprié pour votre application afin que vous n'ayez pas à vous soucier de cela. Donc propre index html. Modifiez la ligne de feuille de style pour qu'elle ressemble à la suivante. Enregistrez le fichier et rechargez le navigateur. Vous devriez voir la même sortie, mais votre base dit que le fichier L est maintenant généré dynamiquement. 24. Héritage de modèle: Si vous êtes toujours sur la page d'index de l'application et que vous cliquez sur le lien Hello, vous remarquerez que le titre de nos pages hello n'a pas changé pour lire comme celui de l'index HTML. C' est parce que notre fichier Hello HTML n'inclut pas le fichier statique CSS. Maintenant. Nous pourrions copier et coller tout le HTML avec fait pour la page d'index, mais vous pouvez voir comment cela pourrait être problématique et viole le principe sec. Ne te répète pas. Flask le sait, et il dispose de quelque chose appelé héritage de modèle, ce qui nous permet de créer des modèles communs avec des sections qui peuvent être remplacées par le modèle actif. Une sorte de comment fonctionne l'héritage de classe. Voyons comment on fait ça. abord, nous allons définir un fichier html de base qui va être le modèle de base pour tous les modèles. Allez-y et créez des bases TML comme un fichier vide sous le dossier templates. Maintenant allez-y et attrapé dans ce HTML les premières 6 lignes et les deux dernières lignes vivant sur Lee le H sur les lignes de référence H et les coller sur la base html. Maintenant, nous avons besoin d'étapes pour le modèle héritage toe travailler d'abord sur l'index html. Nous devons étendre le modèle html de base pour cela. Nous insérons l'instruction suivante sur la ligne un étend la base html Maintenant, lorsque l'index HTML est rendu, il utiliserait le HTML de base comme parent. Mais maintenant, nous devons dire à flask où le contenu hors index HTML sera inséré sur le HTML de base . C' est la deuxième étape, et elle comporte deux parties d'abord dans la LMC de base entre la taxe corporelle. Insérez le contenu de bloc suivant. Ce que cette ligne dit, c'est que les modèles qui étendent ce modèle peuvent insérer du contenu ici en utilisant le contenu. Identifier maintenant sur l'index HTML. Nous devons envelopper le code entier avec le même bloc. Étend le contenu de bloc HTML basé H une page d'index et chacun un trajet. Ural quatre. Hello Planet équivaut à quatre Hello et A et bloquez enregistrer les anciens fichiers et recharger la page d'index. Vous devriez voir exactement le même résultat, mais voici où vous verrez la valeur de ceci. Ouvrez le fichier html hello et insérez les lignes de contenu d'étendue et de bloc en haut sur le bloc de fin en bas. Comme ça, enregistrez le fichier et cliquez maintenant sur le lien Hello sur la page d'index dans le navigateur. Vous devriez maintenant voir les quatre lettres Hello en rouge. Nous pouvons avoir plus d'un bloc dans un modèle, et nous pouvons également définir un contenu par défaut pour ce bloc sous modèle parent. C' est toujours distinct. Toe corriger n'importe quel spectacle que nous avons maintenant avec la balise title. Si vous vérifiez sur le coup de couteau du navigateur, vous verrez que l'index et les pages Hello ont la même page d'index de titre. Il est très important que chaque page individuelle ait son propre titre, surtout lorsque les moteurs de recherche Kroll nos pages. Cet attribut est défini sur la base HTML title tack, donc faisons cela la page Toby Index par défaut si le modèle d'extension ne le passe pas mais autre chose, si c'est rapide, alors changez cette ligne, toe ce qui suit, enregistrez-le, puis ouvrez hello HTML. Et ajoutez ce qui suit après l'instruction extend. Mais avant que le contenu du bloc enregistrer le fichier et maintenant vous remarquerez que chaque page a un titre différent , comme ils devraient 25. Introduction aux formulaires: l' une des principales fonctionnalités et l'application a est la capacité de recevoir les commentaires de ses utilisateurs. Pour ce faire, la particule HDP, qui est la définition de la façon dont les pages Web fonctionnent a créé une commande de mise en marche définie comme burbs. Il y a un certain nombre de burbs http qui font des opérations différentes, mais ceux qui verront dans cette leçon sont get and post ils obtiennent. Méthode vous permet de renvoyer l'entrée de l'utilisateur de la page Web à votre application en utilisant l'euro lui-même, par exemple, disons que nous écrivons un formulaire que l'utilisateur doit remplir avec son prénom et son nom de famille. Ils obtiennent de l'euro pour que cette opération puisse ressembler à ça. Voyez comment nous pouvons voir ce qui est viable dans l'euro. La seule chose que vous devez vous rappeler est de démarrer la liste hors des paires de valeurs de champ ou des paramètres de requête avec un point d'interrogation. Flask peut lire ces paramètres. Essayons cette tête vers Hello P y. et créons une nouvelle route qui lira ces paramètres à partir de la requête get au code suivant et au mensonge. À la demande de la liste des importations, enregistrez le fichier, puis entrez des jours sur votre navigateur. vous verrez que le viable a été reçu correctement dans la demande. Notez comment nous avons ajouté le nouveau paramètre de méthodes sur l'itinéraire. Voici une liste de méthodes HDP acceptables qui peuvent interagir avec cette vue. Puisque nous voulons lire les paramètres obtenir, nous avons ajouté pour obtenir la méthode ici. Notez également que nous nous attendons à ce que les deux valeurs soient présentes prénom et nom de famille parce que nous utilisons les paramètres sans méthode get de liste, ce qui est que vous n'avez pas confondu avec la méthode get HDB. Ainsi, par exemple, si vous ne passez que le prénom sur les paramètres de l'Ural comme ceci et appuyez sur Entrée, vous obtiendrez une erreur 400, mais demandez le remorquage. Évitez ça. Vous pouvez utiliser ce qui suit enregistrer le fichier, puis arrêter le serveur flash et redémarrer car le contenu de la page a peut-être été mis en cache par le navigateur. Maintenant, bien sûr, vous ne vous attendez pas à ce que les utilisateurs tapent leur prénom et leur nom directement sur la barre Euro. Il serait préférable de rendre un bon formulaire pour l'utilisateur. Nous pouvons le faire en utilisant HTML, donc nous allons créer un nouveau modèle sur le dossier des modèles appelé formulaire HTML sur formulaire HTML est le cinq En utilisant le formulaire ouvert et fermer taxe, tout ce qui à l'intérieur des stags deviendra une partie du formulaire. Alors commencez par une forme abrupte. Et pour moi, prochaine ajoutera nos champs. Pour cela, nous utilisons la taxe sur les intrants. Donc, nous allons au prénom et les importations de nom entre les balises de formulaire, entrée a un type. Dans ce cas, il s'agit de champs de texte. Il y a d'autres types que nous verrons dans le cours. Vous voulez également ajouter un nom, c'est ainsi que le nom viable sera transmis à notre application. Pour que l'utilisateur envoie réellement les données, nous avons besoin d'un bouton. Donc, ajoutez ce qui suit. Ça a l'air bien, mais il nous manque quelque chose d'important. Nous devons dire à l'orteil de formulaire quelle route envoyer cela lorsque l'utilisateur appuie sur le sommet. Donc, à l'orteil suivant, l'action de forme de tack est égale forme de barre oblique. Mais attendez. N' oubliez pas que je vous ai dit de ne jamais faire la cour des Orioles sur vos modèles qui incluent les actions de formulaire. Alors remplacons ça par la forme. L' action est égale à la forme Ural quatre. Donc toute notre forme ressemble à ceci. Enregistrez le fichier html de formulaire et maintenant dirigez-vous vers bonjour P Y et remplacez la route du formulaire par le code suivant. Alors que se passe-t-il ici ? Tout d'abord, nous vérifions si la liste des paramètres du chœur a un savon rendu viable. Cela n'arrive qu'après que nous ayons appuyé sur ça de moi. Mais si nous voyons cela, alors lirait les paramètres de requête, prénom et nom de famille et imprimé à l'écran. Cependant, la première fois que nous atteignons la page, nous n'aurons pas à soumettre le paramètre de requête. Donc là. Si la condition échoue et nous rendons le modèle de formulaire, enregistrez le fichier et arrêtez et redémarrez le serveur flash juste au cas où, je vais expliquer pourquoi nous avons besoin de cela dans un peu. Donc maintenant, si vous vous dirigez vers l'hôte local Colin 5000 forum barre oblique, vous verrez que le formulaire est rendu. Entrez maintenant un prénom et un nom de famille et un sommet de presse. Vous verrez le sprint viable. La méthode post est différente de la méthode get de quelques façons importantes obtenir puisque données utilisant les données Euro post sense en utilisant le corps des requêtes, il est donc caché à l'utilisateur, ce qui rend préférable d'envoyer sensibles ou données privées. Il y a aussi une limite aux données que vous avez envoyées. Obtenir des demandes. Aucune limite pour les requêtes post get sont mises en cache par le navigateur utile pour représenter un état de l' obligation. Les demandes de poste ne sont pas encaissées par les sourcils. Donc, nous allons changer le formulaire pour utiliser post au lieu de get comme prénom et nom de famille pourrait être informations sensibles. Nous ne voulons pas passer publiquement sous l'Europe. abord, nous avions un paramètre de méthode orteil les informateurs d'étiquette de formulaire TML de sorte qu'il ressemble à ceci. Enregistrez le fichier. Maintenant, nous devons modifier l'itinéraire sur hello p y et ajouter une méthode post. Nous laissons la méthode get car la première fois que vous appuyez sur la page pour rendre le formulaire, c'est en fait une requête get. Maintenant, pour vérifier si les utilisateurs de méta données, nous changeons leur si pour lire comme ceci. Si demander cette méthode est égale à des publications, cette condition n'est vraie que lorsque l'utilisateur appuie sur submit sur un formulaire qui utilise la méthode post . Enfin, pour lire, les données utiliseront une méthode de requête différente appelée formulaire. Le prénom est égal aux requêtes qui reçoivent le prénom. Le nom de famille est égal aux demandes que le formulaire qui obtient le nom de famille enregistré un fichier et redémarre le serveur Fleiss . Maintenant, allez à la pour murale et remarquez comment, lorsque vous soumettez les valeurs ne sont plus affichées sur l'euro. Il y a 1/3 moyen de lire les valeurs hors formulaire, et c'est en utilisant la requête que les valeurs. Il suffit de changer les deux affectations viables pour lire comme ça. Le prénom est égal aux requêtes de cette valeur. Commencez à obtenir le prénom. Nom de famille égal aux demandes valeurs de démarrage, obtenir la nuit dernière, enregistrer le fichier et redémarrer le serveur. Vous devriez obtenir le même résultat. La chose cool à propos des valeurs de requête est qu'il lit à la fois Obtenir et publier des données, sorte que vous n'avez pas à utiliser notre ou formulaire sous affectation de requête. C' est donc pratique Lorsque l'opération après avoir appuyé sur Soumettre modifie la base de données de quelque manière que ce soit . Il n'est pas bon de permettre à l'utilisateur de simplement appuyer sur recharger encore et encore sur cette page car cela créerait plusieurs enregistrements identiques. Par exemple, supposons que le prénom et le nom de famille dans l'exemple précédent consistaient à créer un nouveau compte d'utilisateur . Donc, quand nous atterrissons sur la section où nous avons récupéré les variables et qu'un enregistrement de base de données est créé, un utilisateur peut alors frapper, recharger 100 fois et créer 100 comptes, il est donc toujours conseillé d'envoyer à l'utilisateur un page de remerciement après les formulaires soumis. De cette façon, l'utilisateur peut recharger la page et rien ne se passe afin que nous puissions faire quelque chose comme cette route sous forme. Cette dernière ligne redirigera un navigateur Toe un itinéraire appelé Register. allons créer que Nous avons besoin d'ajouter à la fois redirection et euro pour toe le fichier afin en ligne. Une annonce de flacon Importer flacon. Rendre le modèle de demande rediriger euro pour enregistrer le fichier et la forme de slash de chaleur sur vos sourcils, vous verrez comment, après avoir soumis votre prise de pied le nouvel euro. Merci. Vous pouvez recharger cette page à plusieurs reprises et aucun nouvel enregistrement ne serait créé. 26. Cookies et sessions: http est appelé un protocole sans état car le serveur ne voit que chaque page touchée comme une opération autonome. n'y a pas d'histoire où vous, monsieur, ce qui est avant. Un exemple parfait était la dernière section de notre code dans la leçon précédente. Rappelez-vous comment nous avons envoyé l'utilisateur à la page de remerciement après l'envoi du formulaire ? Disons que nous voulions afficher le message. Merci, John, sur cette page au lieu de juste merci. Il y a deux façons de le faire. Le premier est d'en quelque sorte remonter orteil l'Oural, une sorte d'information sur la redirection. C' est peut-être le message que nous voulons afficher comme ça. Ou si nous avions stocké l'utilisation lors d'une base de données après le Post a eu lieu, nous pourrions passer les utilisateurs i D. Sur la base de données. Ces deux méthodes sont quelque peu dangereuses parce que nous révélons des informations sur l'euro qui pourraient être encaissées par le navigateur ou potentiellement exploitées par un pirate informatique. La deuxième façon, qui serait plus sûre, est d'utiliser un cookie. Alors, c'est quoi, exactement ? Les cookies font partie du protocole http, et essentiellement ils vous permettent de stocker des informations sur l'ordinateur de l'utilisateur qui peuvent être lues par votre site Web après leur configuration. Par exemple, si vous allez sur amazon dot com et que vous vous connectez dans les magasins Amazon, un cookie avec votre utilisateur i d. Et après cela, toute page que vous appuyez obtient cet utilisateur I d retour ceux qui vous permettent de voir votre historique de commande ou acheter quelque chose avec votre carte de crédit. Mais alors, si vous allez à Walmart, com ce site Web ne verra pas le cookie dot com amazon. Il crée son propre nouveau fichier local pour Wal Mart. Essayons de définir un cookie pour notre page de remerciement d'abord en ligne, un à faire réponse à la fin comme ceci, puis modifiez la section de publication pour ressembler à ceci. Donc, ce que nous faisons ici est d'attraper la redirection sur une réponse appelée viable, puis a dit que le cookie appelé prénom sous la réponse elle-même a finalement été renvoyé tout au navigateur. Ensuite, sur la page de remerciement, nous pouvons lire le cookie de la demande sur l'affichage retour. C' est quelque chose que vous devez vous rappeler et que vous allez probablement manquer les premières fois utiliser des cookies. Les cookies sont définis sur une page et sont disponibles sur Lee lorsque vous rechargez la page ou que vous accédez à une autre page Lorsque vous définissez votre cookie pour la première fois, vous ne pourrez pas le lire dans la même page. Tu l'as dit. Maintenant, enregistrez le fichier et récupérez-le. Remarquez que nous ne voyons pas le nom de John nulle part dans l'euro. Il y a un inconvénient à cette méthode et qui est lié à la sécurité. Nous verrons que les prochains cookies sont stockés dans les utilisateurs locaux. dur non encodé i e. Si nous connaissons le dossier où vos cookies sont stockés, vous trouverez un fichier texte où vous pouvez lire que le cookie prénom est défini John. Maintenant, il est difficile pour quelqu'un d'accéder à votre ordinateur, mais pas impossible. Et imaginez si nous avons non seulement votre prénom, mais aussi votre numéro de carte de crédit ou votre numéro de gouvernement . Ils seraient allongés autour de votre disque dur. Des séances non protégées viennent à la rescousse. Ascension est essentiellement une chaîne générée de manière aléatoire stockée en tant que cookie dans votre ordinateur local . Cela pointe vers les données réelles dans le serveur de site Web. Mais les données du site Web sont également cryptées, ce qui rend vraiment difficile à décoder, alors modifions notre code pour utiliser des sessions à la place. Tout d'abord, remplacez make response par session. Ensuite, nous devons ajouter une clé secrète. Rappelez-vous comment il a expliqué que les données de session sont cryptées côté serveur ? Pour ce travail orteil, nous devons définir une chaîne longue générée aléatoirement, peu comme un mot de passe, cette fiole, puis nous avons utilisé une méthode unique pour chiffrer les données différentes de toute autre fiole application. Donc, à la ligne suivante, après votre instance d'application, elle ation ap dot clé secrète est égal à mon mot de passe secret. Maintenant ce n'est pas de notre clé sécurisée, mais ça va faire pour l'instant. Ensuite, changez le code postal pour ressembler à la suivante Remarque comment la session de flasque est un dictionnaire . Nous pouvons stocker toutes les données que nous voulons en utilisant tout ki que nous voulons à ce stade, Flask va créer les sessions cookie correspondant dans la fausse liste locale de l'utilisateur. Enfin, sur la page de remerciement, vous pouvez récupérer la valeur de la session de prénom en faisant prénom égal session. N' obtenez pas le prénom, enregistrez le fichier et récupérez-le. Fonctionne exactement de la même façon si vous voulez générer une clé secrète plus sécurisée juste pour cette commande dans votre terminal par téléphone Dash C import os point-virgule Imprimer os Pensé vous aléatoire 16 Ensuite, copiez et collez le contenu entre la couche unique. . 27. Gestion de configuration: Au fur et à mesure que vous continuez à créer des applications, vous apprendrez rapidement que les paramètres requis pour développer dans votre ordinateur portable sont différents de ceux utilisés dans le serveur qui abîme réellement votre site au monde. Typiquement, ces différents états hors du haut de nos environnements froids. Dans un seul développement, flux de travail, vous auriez au moins deux environnements de développement, parfois appelé mort, qui est l'environnement sur lequel vous développez dans votre ordinateur ou ordinateur portable local et un autre environnement. Production à froid ou prod. C' est celui que vous citez dans votre demande publique. Il est également important pour votre application de suivre quelles bibliothèques sont requises sous les bonnes versions. Rappelez-vous que lorsque nous avons installé le flacon en utilisant du papier plus tôt, nous avons spécifié la version 1.0 point deux. Cependant, quand un autre développeur installe votre code, il n'a aucune indication qu'il s'agit du numéro de version hors fiole, ou même que nous avons besoin de flasque pour l'exécuter. Pour attirer les bibliothèques, nous utilisons un fichier txt exigences froides qui répertorie tous les paquets sur les jeux dont nous avons besoin. Créez donc un fichier appelé Exigences. Txt sur le dossier racine de l'application et flasque droite égale 1.0 point deux enregistrer le fichier et maintenant, sur le terminal. Chaque fois que vous ajoutez de nouveaux packages, vous exécutez la commande suivante. Payez par installation. C' est nos exigences. Txt. Mais rappelez-vous, et c'est d'une importance cruciale. Assurez-vous que votre environnement virtuel est activé avant d'exécuter, peeping volé, ou vous allez installer ces packages sur toutes les applications. Cette commande indique à Pip entre volé toutes les bibliothèques et ses dépendances répertoriées dans le fichier. Cela sera utile sur la route lorsque nous installons des bibliothèques plus anciennes. Si vous exécutez ceci maintenant, il ne fera rien car flats a été précédemment installé. Mais maintenant, nous avons les informations sur notre base de code. Si notre application, il est utilisé par quelqu'un d'autre flasque version un point non introduit une nouvelle façon de mieux gérer l'environnement. États utilisant une bibliothèque appelée python dot m avec python DRM si nous pouvons stocker tous les paramètres d' environnement dont nous avons besoin dans un fichier individuel afin que nous n'ayons pas à nous soucier les ajouter à notre base de code. Typiquement, ces fichiers d'environnement seront conservés à l'extérieur sur le dépôt git avec un point get ignore et varieront selon les différents environnements comme d'habitude. Nous le faisons différemment dans Windows ou Mac et Python n'importe où, alors passez à la vidéo qui vous convient 28. Python Dot Env pour Windows et Mac: Donc, d'abord, nous devons installer bison tableau de bord m donc ajouté aux exigences. Fichier Txt par téléphone qui étoile EV est égal à 0,8 point deux. Enregistrez le fichier. Accédez à votre terminal, assurez-vous que votre environnement virtuel est activé et faites un tiret volé, bip bip volé. Nos exigences txt prochaine à un fichier d'épargne B Y sur le répertoire APP de route qui ressemble ceci. Cela nous permettra de lire les variables d'environnement. Ce point de tiret python M va pousser du fichier de fin au système d'exploitation, enregistrer le fichier et ensuite ouvrir le fichier Hello p y et a changé la ligne quatre pour lire ap dot com fick point de soulignement P Wife paramètres de fichier Attention. Cela indiquera à Flashed que nous voulons charger nos paramètres d'application à partir du paramètre Arrêter fichier ey, enregistrer le fichier et enfin créer un fichier de flasque point m dans le même répertoire qui ressemble cet avis. Nous passons la fiole sur la partition APP. Environnement viable. Nous avons dû mettre en place manuellement avant, ainsi qu'un nouveau flacon sur la partition. Em viable. Cela indique fiole Si nous sommes dans un environnement de développement ou de production, S'il s'agit d'un environnement de développement, il active automatiquement le mode d'écorce pour nous. C' est bon de mettre la clé secrète ici. N' oubliez pas que cette fiole et ce fichier ne seront pas enregistrés sur d'autres ordinateurs ou validés dans le référentiel. Enregistrez le fichier. Maintenant, vous contestez que tout fonctionne de complètement fermer dans le terminal et de l'ouvrir à nouveau. Accédez au répertoire de l'application flask simple. Activez votre environnement virtuel et tapez flask Apporté l'application des exécutions en mode bogue sans avoir besoin de définir aucun environnement. Virals cool, hein ? 29. Python Dot Env pour Python Dot Anywhere: donc d'abord quand il tweets a volé python dash DRM ainsi ajouté aux exigences. fichier Txt python dash dot m est égal à 0,8 point deux. Enregistrez le fichier, puis ouvrez un bash, en vous assurant que votre environnement virtuel est activé et faites un coup d'œil. Installez ensuite au démarrage d'un paramètre. B y Foul sur le répertoire APP de route qui ressemble à ceci. Cela nous permettra de lire les variables d'environnement que python touch DRM va pousser à partir du fichier de fin, orteil le système d'exploitation, enregistrer le fichier et ensuite ouvert le fichier Hello p y et a changé la ligne quatre pour lire ap dot config dot de soulignement p y paramètres de fichier B Y Cela indiquera à Flash que nous voulons charger nos paramètres d'application à partir des paramètres, démarrer le WiFi, enregistrer le fichier et enfin créer un fichier de flasque de fléchettes dans le même répertoire qui ressemble ceci. C' est bon de mettre la clé secrète ici. Rappelez-vous que ce fichier m de flasque point ne sera pas enregistré dans d'autres ordinateurs sont validés dans le référentiel. Enregistrez le fichier. Nous avons besoin d'une dernière étape, et qui est d'ajouter python Dash DRM toe le fichier de whisky donc à ce dans la ligne un et juste avant la charge de l'annonce d'importation APP sur le point de score m Toujours chemin. Joignez le bain dot flask dans enregistrer le fichier, recharger le web et naviguer orteil le formulaire barre oblique et a essayé de soumettre les données. Ça devrait fonctionner comme avant. 30. Une introduction aux bases une base de données: comme nous l'avons vu sur notre leçon sur les cookies et les sessions. Http est une particule sans état qui ne sauve rien entre. sessions avec des cookies ont permis de garder un pointeur vers un utilisateur spécifique, mais il y a une limite sur la quantité d'informations que nous pouvons stocker dans eux. C' est là que les bases de données arrivent. Les bases de données de place sont de gros silos, où vous pouvez stocker des millions d'enregistrements. Ces enregistrements sont souvent subdivisés en Silas logiques qui sont liés les uns aux autres. Dans ma suite, la base de données que nous allons utiliser les silos sont appelés tables. Les tables ont une structure spécifique, également appelée schéma. À quoi ressemble le schéma que j'ai ressenti ? Il est similaire à une liste de colonnes qui décrivent des choses comme le type de nom et la longueur chaque colonne. Par exemple, disons que nous avons un dossier client stable. Le schéma de cette table pourrait ressembler à ceci. Les différentes colonnes ont un nom comme prénom et e-mail, un type comme chaîne ou entier et une longueur entre parenthèses. Une fois que vous aux enregistrements, la table semble plus familière. Orteil similaire une feuille de calcul ? Non, c'est la première colonne qu'il dit « D » ou « identifier ». Ceci est généralement ajouté automatiquement par la base de données, sorte que nous pouvons référencer un enregistrement spécifique à tout moment. Une fois que les données sont dans une table, vous pouvez faire des requêtes dessus. Que sont les requêtes ? Il s'agit essentiellement d'opérations de données pour récupérer un enregistrement ou un groupe d'enregistrements qui correspondent à un critère, par exemple, que nous recherchons les données de l'utilisateur ou des utilisateurs dont l'e-mail est Jane par exemple point com. On ferait quelque chose comme ça. La base de données commencerait alors par le haut et commencerait à comparer le premier e-mail avec Jane à point com exemple, puis le deuxième e-mail que le 30 mil vieux à la fin et les e-mails qui correspondent à cela ajouteraient aux résultats. Cela et à la fin, donnez-nous ces enregistrements dans cet exemple de base de données. Il ne rendrait que le frère numéro deux, non ? Mais si la requête visait à obtenir tous les utilisateurs dont le nom est Smith, vous pouvez voir que les résultats indiqués auraient des enregistrements un et deux. Si nous savons avec certitude que chaque client aura son propre e-mail, nous pouvons modifier le schéma comme suit. Voir la colonne e-mail Maintenant, il dit son unique, ce qui signifie que la base de données sait une fois qu'elle a trouvé le résultat dont elle a besoin. Il peut vous le retourner. Mais il y avait déjà un domaine unique sans que nous le sachions. Pouvez-vous le repérer ? Oui, la colonne I D doit être unique par défaut. Maintenant, imaginez. Nous avons eu des dizaines de milliers d'enregistrements, et nous recherchions le seul utilisateur avec l'e-mail Jane à l'exemple point com. Ce serait une perte de temps que Toby attend pendant que la base de données fouille toute la table à la recherche de cet enregistrement. Peux-tu penser à un moyen qui pourrait accélérer ça ? Une façon serait de trier les données par e-mail afin que lorsque nous trouvons l'e-mail que nous voulons, nous puissions arrêter de chercher. Mais il y a un outil que les bases de données offrent pour nous aider à faire ceci ou l'Amérique. L' indexation nous permet de définir certaines colonnes pour être celles qui seront le plus recherchées. Une fois que nous définissons une colonne Toby indexée, la base de données crée une version plus petite de la table avec juste le I. D. Sur le champ. Nous indexons, par exemple, cela afin de créer un index de messagerie parce que nous savons que nous allons beaucoup chercher les utilisateurs par e-mail. L' index des e-mails ressemblerait à ceci. Il est beaucoup plus rapide de rechercher un client parce que nous n'avons pas à regarder tous les dossiers. Mais pas seulement ça. Notez comment les e-mails sont triés aussi qu'une base trier généralement les index de sorte qu'une fois qu' il trouve les enregistrements qu'il recherche, il n'a pas besoin de continuer la recherche. Un autre concept que vous entendrez beaucoup sur les bases de données sont les opérations de foule croix signifie Créer, Lire la mise à jour Supprimer Dans ma suite, nous pouvons faire n'importe laquelle de ces opérations sur n'importe quel enregistrement en utilisant une commande spécifique comme suit. Créer, insérer, lire, lire, sélectionner Mettre à jour la mise à jour. Ils dirigent la ligue. Nous examinerons chacune de ces opérations dans les prochaines leçons. 31. Installation de MySQL: il est temps d'installer ma suite comme d'habitude. Si vous utilisez par lancer n'importe où, le flux est un peu différent, alors passez à la leçon qui s'applique à vous. 32. Installing MySQL sur Mac avec Homebrew: grâce à Homebrew installer ma suite sur Mac. C' est assez simple juste jusqu'au décrochage suivant. C' est pour ça que ma suite. Si vous voulez que ma suite déjeuner automatiquement chaque fois que vous allumez votre Mac, vous pouvez faire des services de brassage démarrer ma suite. Je ne recommande vraiment pas ça. Au lieu de cela, vous pouvez le démarrer manuellement quand vous en avez besoin en faisant mon serveur de point de suite Démarrer et arrêter avec mon serveur de point de suite Arrêtez la seconde. Ma suite fonctionne. Démarrez le serveur en faisant ma suite, ce serveur Démarrer, puis en vous connectant en utilisant ma suite, Dash You Root Exit en utilisant Quitter Semi deux-points. Maintenant sécurisez l'installation en faisant ma suite sur la partition. Sécurisez sur l'installation de Score. Ma suite propose une validation de connexion de mot de passe, mais nous ne l'utiliserons pas juste de taper N, puis entrer un mot de passe. J' utiliserai Route Pass comme mot de passe root. Je vais également supprimer l'utilisateur anonyme et supprimer la possibilité d'acheminer les bagages à distance. Je vais également supprimer la base de données de test et recharger les privilèges. C' est une bonne pratique de créer la base de données avec un utilisateur spécifique et un mot de passe et de ne pas utiliser l'utilisateur racine de l'application dans la section suivante va créer une application de compteur de visiteurs , donc nous allons créer un compteur de froid de base de données. Nous accèderons à la base de données avec le compteur utilisateur sur la partition, application et le mot de passe. Mon mot de passe. Donc, la connexion orteil ma suite avec votre utilisateur de route et mot de passe. Ma suite le fait, elle a écrit. Dash P Route Pass. Créer la base de données, créer qui obéit au compteur et maintenant créer l'utilisateur et le mot de passe crée compteur de devis utilisateur sur l'application de score, fin citation à Star Coat Pourcentage Sign in tribunal identifié par Quote my passeport. Fin de citation semi appelez-le. Autoriser les axes complets de l'utilisateur à la base de données. Accordez tous les privilèges sur l'étoile de compteur. Commencez le compteur de devis sur la ferraille et le devis ouvert pour cent conception devis fin point-virgule et rechargez les privilèges. privilèges de chasse, a dit Michael. Maintenant, quittez en utilisant Control D et essayez de vous connecter en utilisant le nouvel agresseur. Ma suite Dash, vous contrevenez à cette merde. C' est mon mot de passe. Si vous êtes en mesure de vous connecter en bonne forme maintenant, essayez d'utiliser la table de comptoir. Utilisez le point-virgule du compteur. Si vous n'avez pas d'erreur, nous sommes bons. Maintenant, regardez dehors en utilisant le point-virgule de sortie 33. Installing MySQL sur Windows avec Chocolatey: grâce à jongler dame L'installation de ma suite sur Windows est assez simple. Nous allons installer le paquet Maria DB, qui fonctionne exactement comme ma suite. Ouvrez un Power Shell en tant qu'administrateur et tapez Shoko Install Maria DB. Maintenant, fermez une application Power Shell complètement une session régulière ouverte et nouvelle. Vérifions si mon secret fonctionne, journalisation en utilisant ma suite que vous sortez root en utilisant le point-virgule de sortie. Sécurisez l'installation en créant un mot de passe root. J' utiliserai le type Route Pass. Ma suite, Admin, Admin, cet utilisateur de cachette égale route, Mot de passe, citation, Route, Route, passer et appuyez sur Entrée maintenant essayer la recherche moyenne en utilisant ma suite que vous racine Dutch Be Brew Pass . Si vous regardez dedans, cela signifie que tout fonctionne. Quitter en utilisant le contrôle. Voir, il est une bonne pratique de créer la base de données avec un utilisateur spécifique et un passeport et de ne pas utiliser l'utilisateur racine de l'application Dans la section suivante sera de créer une application de compteur de visiteurs , donc nous allons créer un base de données appelée Counter. Nous accèderons à cette base de données avec un compteur utilisateur sur le score vers le haut et le mot de passe. Mon mot de passe. Donc en regardant orteil ma suite avec votre utilisateur de route et mot de passe. Créez la base de données, créez un compteur de base de données et créez maintenant l'utilisateur et le mot de passe. Créer l'application Yusor Counter au signe de pourcentage identifié par mon mot de passe. Autoriser l'utilisateur à accéder pleinement à la base de données accordez tous les privilèges sur l'étoile écartée pour compter sur l'application de score au signe de pourcentage et recharger les privilèges. Privilèges de vidage Maintenant, la sortie est en contrôle. Voir et essayer de vous connecter en utilisant le nouvel utilisateur APP ma suite que vous comptez sur le score vers le haut. C' est mon mot de passe. Si vous êtes en mesure de vous connecter en bonne forme maintenant, essayez d'utiliser la table de comptoir. Utilisez compteur si vous n'obtenez pas une erreur, serait bon maintenant faible goutte en utilisant la sortie. 34. Configurer MySQL sur PythonAnywhere: si vous utilisez la morsure sur n'importe où. Ma suite est déjà intégrée, donc vous n'avez pas besoin de l'installer manuellement. Il vous suffit de vous diriger vers le tableau de bord et de cliquer sur les bases de données dans la barre de navigation. Vous verrez que vous avez déjà un nom d'utilisateur défini pour vous, qui est généralement le même nom que votre python n'importe où Utilisateur. Toutefois, je vous recommande de définir un nouveau mot de passe pour l'utilisateur de base de données. Alors allez dans la section my sequel password et entrez un nouveau mot de passe. J' utiliserai mon passeport, mais n'hésitez pas à en créer un plus sûr. Dans la section suivante, nous allons créer une application de compteur de visiteurs Donc, nous allons créer une base de données appelée Counter on pour créer un compteur de type de section de base de données sur le nom de la base de données. Cela va créer la base de données pour vous. Cependant, veuillez noter que le nom réel de la base de données sera votre nom d'utilisateur, plus un signe dollar, plus un nom de base de données que vous avez entré. Se battre n'importe où ne permet pas la création d'un utilisateur spécifique, vous devrez donc utiliser leur my suite utilisateur assigné pour vous de l'utiliser à partir de l' application pour vous assurer que nous pouvons nous connecter à la base de données. Ouvrez un bash, console et tapez ce qui suit, en le remplaçant par votre nom d'utilisateur, votre passe et votre adresse d'hôte de base de données. Si vous obtenez sur ma suite Prompt étaient bons. Entrez le point-virgule de sortie pour quitter. 35. MVC et le Mapper relationnel d'objets: Avant de commencer à construire notre première application pilotée par la base de données, je voulais vous présenter le concept hors de l'objet Relational mapper ou O. R M. En théorie, nous pourrions émettre Database Square est directement de notre application code à chaque fois que nous voulons des données . Donc, par exemple, disons que nous sommes sur une route qui doit au moins retirer les utilisateurs. Nous pourrions simplement nous connecter à la base de données, droite la requête pour sélectionner tous les utilisateurs de la base de données et peut-être faire d'autres opérations sur la base de données et la fermer. Mais disons que nous avions une nouvelle structure dans la base de données, peut-être un champ en direct, car certains utilisateurs pourraient être suspendus pour avoir publié un mauvais contenu. Ou disons que nous décidons de passer à un nouveau serveur de base de données de suite comme Post Chris. Nous aurions besoin de passer par toutes ces questions et de les changer. Pour cette raison, nous avons utilisé le modèle M V C pour les applications. Tu te souviens quand j'ai parlé du modèle de l'ambassade ? Lorsque nous avons introduit les modèles, nous avons dit que les modèles où les vues Et maintenant que nous avons une base de données disponible, nous aurons le modèle Toby, un fichier qui traite de tout ce qui est lié à parler à la base de données. Ce fichier de modèle va tirer parti de quelque chose appelé un ou dans lequel convertit essentiellement les données ont augmenté en objets de sorte que lorsque nous voulons accéder aux utilisateurs dans cette route, nous demandions une liste des objets de la morale, pas émettre une commande de suite. De cette façon, si quelque chose change avec la structure de la base de données ou si nous avons changé les serveurs de suite, nous avons juste besoin de changer le fichier de modèle et ne pas nous inquiéter du reste de l'application. Cela deviendra plus clair une fois que nous aurons construit notre première application NBC, alors continuons-y. 36. Notre première application axée sur des données: nous allons faire un grand pas dans notre développement, écrit,en créant notre écrit, première application de flasque pilotée par la base de données. L' application est une sorte de compteur de visiteurs de ce que vous verrez dans ces sites de vieille école dans le pied de page. Cela compterait le nombre de personnes qui ont visité le site comme d'habitude. Nous avons différentes instructions de configuration, en fonction de votre système de développement, donc échappé à la bonne pour vous, et nous allons partout ensemble ensemble de l'autre côté. 37. Configuration d'application initiale sur Mac et Windows: nous allons créer un tout nouveau répertoire pour notre application de compteur de visiteurs, et ce processus vous montrera comment mettre en place une marque l'application flask avec tout ce que nous savons maintenant, commençons par créer notre répertoire d'applications dans Slash OPD. Maintenant, passez à ce répertoire. Nous allons mettre en place notre environnement virtuel et activé. Maintenant, nous devons mettre en place nos exigences. Txt. Donc, ouvrez Adam sur ce dossier en faisant Adam dot ou en ouvrant Adam, puis en ouvrant la barre oblique Hoppity Slash Mr Dash dossier compteur. Maintenant, nous allons créer les exigences. Txt. Les paquets de base que nous allons installer sont les suivants. Vous pouvez mettre ces lignes dans le fichier txt d'exigences, Cependant, Cependant, parce que hors de petites différences entre les versions et les paquets, j'ai vécu que les étudiants ont parfois des problèmes avec les bibliothèques que je mets dans le cours par rapport à ce qu'ils sont installés. Donc, si vous voulez être plus sûr, copiez et collez l'exigence 60 ci-dessous, enregistrez le fichier et installez les paquets en faisant peeping volé que nos exigences txt. Une fois que cela est fait, nous pouvons commencer à écrire l'application 38. Configuration d'application initiale sur PythonAnywhere: nous allons créer un tout nouveau répertoire pour notre application de compteur de visiteurs, et ce processus vous montrera comment mettre en place une toute nouvelle complication d'appartements avec tout ce que nous savons maintenant, commençons par créer notre répertoire d'obligations dans vos utilisateurs barre oblique o p t dossier. Passez à ce répertoire. Maintenant, nous devons mettre en place notre environnement virtuel et activé. Maintenant, nous allons créer le fichier txt d'exigences. Le paquet est que nous allons installer sont les suivants Vous pouvez mettre ces lignes dans le fichier txt d' exigences. Cependant, raison de petites différences entre les versions et les paquets, ont connu que les étudiants ont parfois des problèmes avec les bibliothèques que j'ai mises dans le cours par rapport à ce qu'ils sont installés. Donc, si vous voulez être plus sûr, copiez et collez leurs exigences fichier txt ci-dessous, enregistrez le fichier et les paquets installés en faisant peeping volé dash nos exigences Txt. Nous devons maintenant mettre à jour les paramètres Web de notre application. Donc, dirigez-vous vers le tableau de bord Web d'abord sur la section de code a changé le code source Répertoire deux. Accueil de votre nom d'utilisateur. Oh, compteur Petey Rezidor Dash. Ensuite, changez le fichier de whisky et mettez à jour la ligne cinq avec le nouveau répertoire et changez de ligne. 11 Toe l'enregistrement suivant dans le fichier. Enfin, mettre à jour l'orteil virtuel du FMI celui dans le compteur de visiteurs. Il suffit de cliquer sur le compteur de tiret Lien et Time Visitor et il va automatiquement remplir l' application Web rechargée avec le bouton vert. Une fois cela fait, nous pouvons commencer à écrire l'application. 39. Nos bibliothèques d'applications: Alors passons en revue les exigences. bibliothèques Txt pour obtenir une meilleure compréhension de ce que nous incluons et pourquoi flask et par tonnerre M. Vous aviez déjà vu auparavant. Flask est le où Framework et Python DRM nous permet d'utiliser des variables d'environnement avec un fichier simple par ma suite est ce qu'on appelle une bibliothèque de connecteurs, et il permet à notre application flask de parler à une suite de base de données de vélo. Alchemy sera notre base de données ou dans Remember quand nous avons parlé d'utiliser les enregistrements de base de données comme objets séparant les carrières de suite de bas niveau de notre application suite Alchemy nous permet de le faire. Enfin, Flask Migrate nous permet de suivre les changements que nous effectuons a pris le schéma de base de données afin que tous autres membres de l'équipe travaillant avec vous ou toute autre installation de l'application puissent être tenus à jour avec ces changements. 40. Les paramètres environnementaux: Maintenant, nous devons travailler sur l'environnement, citant jusqu'à présent l'application. Alors créons notre fichier m de flasque point et expliquerons ce qu'ils sont. Donc, créez le fichier et mettez les viraux suivants dedans par téléphone n'importe où. Veillez à utiliser l'utilisateur hôte et le nom de la base de données qui vous sont assignés sur vos bases de données . Poignardez donc pour le python n'importe où qui obéissent aux paramètres ci-dessus. J' ai utilisé l'arnaque à point plat suivante. Enregistrez le fichier et vérifions l'ambiance. ALS un par un le 1er 3 que nous avons vu avant, Flask application dit flasque, qui a déposé pour fonctionner avec le flacon ou sur commande Nordea rapports géré médecin ey ici, qui n'existe pas encore. Nous expliquerons que dans la prochaine fiole de leçon sur la partition, em dit flask qu'il s'agit d'un environnement de développement afin qu'il active le rechargement automatique sur nos fenêtres et les configurations maximales. Désolé, Python n'importe où ne prend pas en charge le rechargement et l'activation du bateau de débogage. Enfin, nous avons besoin d'une clé secrète pour pouvoir utiliser les sessions. Le reste du fichier leur trouve que qui ont X nom d'utilisateur, mot de passe et nom que nous avons créé dans notre section précédente maintenant créer le fichier Settings B Y sur le dossier de l'application, qui ressemble à ceci dans la réalité suite Alchemy n'a besoin que de la suite Alchemy. Base de données de votre réglage des yeux. Mais de cette façon, vous pouvez vraiment dire les composants hors de la DB votre composant oculaire. Enregistrez le fichier. Ensuite, nous allons voir notre usine principale d'applications. 41. L'usine d'application: dans notre application Bonjour monde sont le fichier hello dot p y avait tout ce qu'il contient. L' application a mis en place les routes et on s'attendait à ce qu'il soit tout seul. Dans le monde réel, cependant, cependant, les applications sont organisées par modules avec son module faisant quelque chose de différent, ce qui aide à maintenir l'ordre et à construire de nouvelles fonctionnalités plus facilement. Par exemple, dans une application de comptabilité, toutes les routes et les mœurs liées à l'utilisateur peuvent laisser dans un annuaire utilisateur et toutes les transactions liées à l' orteil. Ces utilisateurs vivaient séparément dans un répertoire de transactions. Pour être en mesure de mieux supporter la dysfonctionnalité, nous allons créer un fichier point d'application B Y qui permet la création d'instances hors de l'APP sur un fichier de gestion B Y séparé, qui est celui exécuté par flask run qui va réellement fraye. Une instance. Parce que le point d'application B y produit des instances hors de l'APP, nous appelons cette méthode une usine, et elle suit le modèle de conception d'usine. Alors vérifions d'abord le fichier DepuY d'application, alors créez une application jusqu'à ey fichier et mettez-y le code suivant. Les 3 premières lignes importent les différentes bibliothèques. Nous avons besoin de flasque suite alchimie et le lin migrent jusqu'à présent, si bon. Ensuite, nous avons mis en place une base de données viable appelée qui crée une instance hors suite Alchemy. Cela permettra de construire la connexion avec sa base de données en utilisant les viraux point m de flasque. Ensuite, nous avons défini la fonction create APP, qui commence par plus ou moins ce que nous avions dans Hello. Ne soyez pas quoi, créez une instance à partir de la classe flask, puis configurez la configuration à partir du paramètre Stop ey fichier. Les deux lignes suivantes ont réellement initialisé la base de données et commence à suivre les modifications apportées à celle-ci . Et enfin, nous avons retourné l'instance de l'application à celui qui appelle dysfonctionnement. Tout cela peut sembler beaucoup, mais après quelques fois, il devient seconde nature. Enregistré un fichier finalement créé. Géré votre fichier y avec les lignes suivantes. Cela va juste importer pour créer la fonction APP à partir de l'application B Y, puis créer n'importe quelle instance hors de l'APP. Enregistrer le fichier sur la prochaine leçon va créer notre premier module, le module compteur 42. Créer des modules avec des plans bleus: Nous allons maintenant voir comment nous continuons à construire notre application de manière modulaire, et c'est en utilisant des flacons. Des plans. Alors, quels sont les plans ? Pensez-y comme les éléments de construction de votre application qui sont axés sur un domaine spécifique . Par exemple, supposons que nous construisions une plateforme sociale comme Twitter. Nous pourrions avoir un module utilisateur qui traiterait l'enregistrement de journalisation. En édition de profil. Nous pourrions avoir un module de flux qui traiterait de la publication des messages utilisateurs d'eau orteil et un autre module de relation qui traiterait de ce qui suit et sur le suivi d'autres utilisateurs. Chacun de ces modules aurait un contrôleur de modèle correspondant et des vues dans une fiole. J' utilise view stop ey pour le contrôleur et les modèles pour les vues. J' ai donc appelé cela la vue du modèle de modèle de modèle MTV. Ils ont également leurs propres tests qui testent uniquement la fonctionnalité qui se rapporte à ce module. J' appelle aussi chacun des modules et de l'application parce qu'ils sont une sorte de nombreuses applications de leur propre, a pris un peu simple. Nous aurons juste un module pour l'application de compteur afin que vous en ayez le coup, alors construisons notre première application de compteur 43. Notre premier plan: Alors construisons notre premier module de Blueprint. Ce module s'assurera que chaque fois que nous chargeons la page, nous incrémentons le compteur dans la base de données d'un. Nous commençons donc par créer notre répertoire de modules. Donc, sur votre répertoire racine, créez un dossier Compteur froid. Puisque ce sera un modèle python à partir duquel nous allons importer des choses, nous devons y ajouter un fichier b y. Donc, créez cela dans le répertoire du compteur. Ensuite parade notre contrôleur d'ambassade pour ces applications de compteur qui appellera les vues B y. Donc, créez ce fichier à l'intérieur du type de fichier ce qui suit la première ligne importe la classe de Blueprint de flask et la deuxième ligne crée réellement une instance de Blueprint contourner le nom du module qui appellera l'application compteur et le nom magique viable qui détient le module de fichiers. Maintenant, nous allons créer la première route de ce module, qui sera l'euro racine. Remarquez comment le décorateur ne dit plus à AP. Maintenant, nous utilisons le nom des Blueprints, enregistrez le fichier, et maintenant ouvert l'application dop ey et insérez ces lignes juste avant le retour à. Donc, nous importons d'abord le compteur à Blueprint à partir du fichier vues B y. Et puis nous avons enregistré ce plan avec notre application mondiale de fiole. Enregistré un fichier, et maintenant nous allons vérifier le site dans notre navigateur pour Windows et Mac. Allez au terminal et assurez-vous que votre FMI virtuel est activé et entrez le flacon. Exécutez, puis dirigez-vous vers l'hôte local 5000 dans votre navigateur. Cet hôte local est le même que le 1 27.0 point 0.1 que nous avons utilisé sur le bison n'importe où. Assurez-vous d'avoir redémarré le serveur et de vous diriger vers vos côtés. Euro. Vous devriez voir l'application de compteur sur la page. Si quelque chose ne fonctionne pas, consultez les messages aériens dans le navigateur ou dans le terminal par téléphone n'importe où. A également un lien de journal des erreurs sur la section des fichiers de verrouillage de l'onglet Web. Maintenant que nous connaissons l'ensemble de routeurs, construisons notre modèle 44. Le modèle de compteur: Maintenant, nous devons construire notre modèle de compteur APS où nous allons définir ce modèle. Schéma du modèle peut avoir plusieurs classes liées sur chaque classe, représente une table dans la base de données. Nous simplifions notre première application pour que vous compreniez comment tout fonctionne. Nous aurons donc besoin d'une seule classe de la classe de modèle de compteur. Donc, créez un nouveau fichier dans le répertoire du compteur appelé Models B Y et commençons à construire abord, nous devons importer la suite Alchemy Database. Instance. Toe le modèle de l'importation de l'application à la prochaine définira le compteur de classe compteur modèle Devi Done. Nous définissons la classe de compteur comme une extension de la suite Alchemy Model Class. A l'intérieur de la classe définira deux champs I D et Count. Le premier est notre I D, qui est l'identifiant requis rempli. C' est un nombre qui commence à partir d'un sur les incréments automatiquement, et nous le disons à Sequel AKA Me en le définissant comme un entier de point db et en faisant notre clé primaire . Nous pourrions appeler ce champ quelque chose d'autre, mais il est standard de l'appeler i d. Le deuxième champ est Count, qui contiendra un nombre off hits la page a reçu. Pour l'instant, nous avons juste besoin d'un numéro. Donc, nous avons juste défini cela comme un entier. Ok, jusqu'à présent si bien. Maintenant, nous devons définir la méthode innit pour la classe. La méthode terminée est ce qui sera appelé lorsque nous créons l'objet pour la première fois. Donc, dans la même classe, faire la mort suivante en elle auto-peigne compte auto. Ce compte est égal au camp. Vous verrez cela en action lorsque nous créons l'objet. Enfin, les anciennes classes devraient avoir une méthode de reproduction, qui est la façon dont elles sont imprimées dans le terminal lorsque nous voyons l'enregistrement. Donc, juste pour les sourds r e pr auto retour f compte auto ne compte pas. Donc, tout le dossier ressemble à ceci. Enregistrez le fichier. Et maintenant, initialisons la base de données et introduisons le concept hors migrations. 45. Une introduction aux migrations: que notre application évolue, les modèles de base de données nous pousseront bien. Mais tout comme nous avons pu enregistrer l'historique de notre code et avoir la possibilité d'annuler choses si nous avons foiré les migrations est le même concept appliqué à nos modèles de données. Nous allons utiliser la bibliothèque Flask Migrate pour cela, et il y a quatre commentaires importants à retenir. En elle. Nous avons utilisé est la toute première fois que nous commençons nos migrations, mes grands contrôles, tous les changements dans les modèles de l'application et les magasins. Les modifications apportées à une mise à niveau du fichier de migration appliquent le dernier fichier de migration. Les modifications apportées à la mise à niveau de la base de données sont rétablies à partir de la dernière pointe de migration, celle qui est antérieure à la base de données. Au début, vous serez confus au sujet des opérations de commande hors service et est allé faire cela. Mais croyez-moi, ça devient une seconde nature après que vous l'ayez fait un certain nombre de fois. Rappelez-vous simplement que Migrate crée uniquement les modifications dans le dossier Migrations, mais ne modifie pas réellement votre base de données. C' est ce que fait la mise à niveau. Avant de faire quoi que ce soit, soit, nous avons besoin d'une étape importante dont vous devez vous souvenir lors de la création de nouveaux modèles que vous souhaitez ajouter aux migrations. Veuillez noter ceci car c'est très important. Vous devez être en mesure de voir le modèle à partir de votre application. P Y vous voyez la façon dont mon grand découvre ses modèles est via ils migrent égaux migrent app virgule db ligne dans l'application. P Y. Si vous suivez le reste du fichier, vous verrez que maintenant nous importons compteur qui voit en ligne. 19. Ok, donc ouvert a contrecarré nos points de vue. Il manque quelque chose ? Oui, il n'y a aucune mention des modèles. Soyez pourquoi n'importe où ici. Donc, si nous effectuons la migration maintenant, Migrate ne verra aucun modèle nulle part et ne générera pas de migration en ligne. Trois. Insérez la commande suivante à partir de compteur d'importation des modèles. Maintenant Flash My great va passer par les applications B Y. Ensuite, allez sur pour contrer les vues et voir les modèles et être en mesure de savoir qu'il ya quelques définitions de base de données dans cette application. Maintenant allez-y et enregistrez le fichier. Rappelez-vous cette règle, car elle est de 80 % sur les problèmes liés aux migrations non créées. Donc, nous allons initialiser sont le dossier Migrations. Accédez à votre terminal ou ouvrez un bashed in par téléphone n'importe où. Assurez-vous que votre F virtuel est activé et faites Flask db Dans celui-ci, vous verrez quelques messages concernant la création d'un répertoire appelé Migrations. Maintenant, si vous regardez dans votre éditeur de code, vous verrez l'avis de répertoire que nous avons, ah, ah, répertoire de versions à l'intérieur qui est vide. Lorsque nous effectuons notre première migration, nous verrons un fichier créé là. Donc, à ce stade, rien ne s'est passé. De plus, mon grand juste initialiser le répertoire où les versions seront stockées fera maintenant la première migration. Alors fais la flasque. Ils migrent. Si votre connexion à la base de données fonctionne correctement, vous verrez le premier fichier de version créé dans votre répertoire. Si vous voyez des erreurs, vérifiez que votre serveur de suite Mike est en cours d'exécution et que vous pouvez vous y connecter à partir du terminal à l'aide de l' application de compteur, du nom d'utilisateur et du mot de passe. Maintenant, ouvrez le fichier de diversions. Il ressemblerait à une chaîne avec des chiffres et des lettres se terminant par un point souligné B. Y. Vous verrez qu'il y a une révision. Identifiez notre section, puis deux fonctions de mise à niveau et de mise à niveau vers le bas affiche les commandes pour passer de l'état précédent. Dans ce cas, puisque c'est notre 1er 1, il dit qu'il va créer la table de compteur et ajouter deux colonnes I D et Count Downgrade dit juste qu'il va supprimer ou supprimer la table qui nous rendrait effectivement à l'état précédent quand nous n'avions pas table de comptoir. C' est toujours une bonne idée de regarder la dernière version que mon grand génère, et de vérifier que les actions dans leur correspondance avec les changements que vous avez l'intention de faire. Si, pour une raison quelconque, ils ne le font pas, vous pouvez le supprimer en toute sécurité avant de faire autre chose. Vérifiez les éléments manquants dans votre modèle, puis générés à nouveau. Une fois que les choses ont l'air bien, vous pouvez terminer le processus en faisant une mise à niveau, ce qui fait les modifications sur la base de données. Sur cette première fois, il va réellement créer la table pour nous. Alors allez-y et faites la mise à niveau de base de données flask. Notez le message indiquant Exécution de la mise à niveau. Message vide. C' est ainsi que vous pouvez dire qu'il a réellement implémenté les modifications sur la base de données. Quand vous passez d'un verset en remorquage. Un autre, vous verrez que deux versions que j'y trouve. C' est assez bon pour le moment que nous continuons à construire notre application et que l'ajout de tables et de champs permettra de mieux connaître le flux de travail de migration 46. Opérations de base de données de la Shell: l' une des choses que je voudrais faire avant d'écrire du code qui lit ou écrit des objets sur l' application est de les tester sur le shell python flask, tout comme vous pouvez générer. Une fiole shell python vous permet d'ouvrir un shell qui a votre application chargée. Essayons donc ce type flask shell. Vous verrez les trois flèches angées familières, mais maintenant nous pouvons importer des choses de notre obligation et de test. Souviens-toi que les opérations de foule dont on a parlé tout à l'heure les feront toutes dans cette leçon. Donc la première leçon pauvre la classe de compteur des modèles de compteur de miles de compteur dans le mauvais compteur. Nous aurons également besoin d'importer cette suite DB Alchemy Object à partir de notre fichier d'application à partir de Application Import DB. En ce moment, la table de comptoir est vide depuis qu'on vient de l'importer. Donc, vérifions deux fois ce type de requête de point de compteur que tout. Croyez-le ou non, nous avons juste exécuté une requête sur la base de données à travers la suite Alchemy ou, hum, nous avions une liste vide, ce qui est logique. Donc ici utilisaient compteur comme représentation de la table de comptoir. Nous utilisons toujours la méthode de requête pour exécuter des requêtes sur la base de données et tous les moyens juste me donner tous les enregistrements. Essayons donc d'écrire notre premier enregistrement sous base de données. Tout d'abord, faire compteur égal compteur comptage égal à un. Cependant, rien n'a été lu là-dedans. Je base juste pour l'instant. Sequel Alchemy a le concept de récession. Vous pouvez vérifier que l'objet compteur n'a pas été écrit. Bout la base de données en vérifiant son i d compteur point i d. Comme elle n'a pas été écrite, la base de données ne l'a pas affectée sur i d. Maintenant, nous allons ajouter l'opération de compteur à la session en faisant db cette session. N' ajoutez pas de compteur. Donc, pensez à une session comme une série d'opérations de base de données qui sont liées les unes aux autres qu'une fois que nous avons tous les nécessaires, nous engageons base de données toe. Cela a deux avantages. Un. Vous n'avez pas besoin d'écrire plusieurs opérations individuellement, mais vous pouvez les faire toutes avec un seul appel, ce qui rend plus facile pour la base de données d'avoir moins de droits. Et deuxièmement, si quelque chose ne va pas avec l'une de ces opérations, nous pouvons tous les retourner facilement. Dans notre cas, nous voulons seulement écrire notre objet de compteur dans la base de données. Donc, à la B cette session qui se valide maintenant, vérifiez le compteur point i d succès. Nous en avons maintenant une qui roule la base de données qui ressemble à ceci, et c'était la mer dans la foule. Faisons un R. Alors comment pouvons-nous récupérer la valeur de cet enregistrement ? Il y a deux façons. D' abord utilise son i D. Donc, si nous connaissons l'idée de l'enregistrement, nous pouvons faire le compteur suivant sur ce score. Un est égal. Contre ce point de requête Obtenir un. Vous pouvez maintenant imprimer le compteur d'objets. Souligner un avis Le format de l'objet suit ce que nous avons créé sur la méthode d'ondulation hors de la classe de compteur. Nous pouvons également obtenir le compteur de décompte de valeur sur leur score un point. L' autre façon est de faire une requête de type liste, par exemple, nous avons vu celui-ci plus tôt. Compteur sur la liste de score est égal à Compter cette requête que tout Maintenant, si vous imprimez la liste de compteur, vous obtiendrez les objets sacrés dans la table de compteur pour obtenir le premier résultat sur l'attribution orteil, un compteur viable que nous faisons sur la partition. Deux égal compteur sur le score, peur de zéro. Et si vous imprimez compteur sur l'outil de partition, vous verrez que c'est le même enregistrement. Il existe également une méthode pratique pour sauter le support zéro moindre opération. Si vous savez que la requête ne produira qu'un seul objet dans la liste ou que le premier résultat est celui que vous voudrez toujours que vous pouvez faire, Counter souligne deux égaux. Contre cette requête que d'abord, qui sera utile souvent. Ok, que diriez-vous du U en craquelé ? Mettons à jour l'enregistrement. Donc d'abord, on va le chercher, juste au cas où on le perdrait. Compteur égal à des compteurs une requête qui sortent d'un et apportent la valeur de compteur de compteur com com. Réglons le nombre à deux. Alors, faites contre. Ce compte est égal à deux. Lorsque nous effectuons des mises à jour, nous n'avons pas besoin d'ajouter à la session de base de données. Depuis la suite, Alchemy a un i. D. pour l'enregistrement, donc écrire notre mise à jour juste pour qu'ils soient ce document de session et c'est tout. Essayez de récupérer l'enregistrement avec un autre viable et vérifiez si la valeur de comptage a été mise à jour. Enfin, nous pouvons faire que D hors foule l'orteil allumé, supprimer ce disque. Vous pouvez d'abord le récupérer, puis appeler la méthode delete hors de la session. compteur est égal au compteur de la requête qui en sort. Ils sont cette session que le compteur d'élite pour vraiment le supprimer dans la base de données, vous devez faire une comète, ils sont cette session dot com il. Et maintenant, si vous essayez d'obtenir des enregistrements, vous verrez la table. C' est encore une fois vide. Contre la requête que tout Ok, c'est tout ce dont nous avons besoin pour commencer à construire notre application de compteur. 47. L'application de comptoir de page: La première génération de notre application sera juste de mesurer combien de fois la page d'accueil a été chargée. Alors ouvrez votre éditeur Adam ou navigato Python n'importe où éditeur de fichiers, et ouvrez les vues de compteur B y et ajoutez le code suivant à notre méthode innit. Nous allons commencer par récupérer le premier objet compteur. Le compteur est égal au compteur. N' interroge pas ce premier avis. Nous n'avons pas besoin de passer la méthode tout avec. Plus tôt dans ce cas, nous voulons juste la première période record. Si le pays est non, cela signifie que c'est la première fois que nous exécutons l'application et nous devrions créer l' enregistrement afin que nous puissions le faire, sinon compteur est égal à compteur off une db cette session. Ce compteur d'annonces, ce sont cette session qui s'engage. Voyez comment Winston a mangé le contre-objet ici. Nous n'avons pas besoin de passer l'argument mot clé count car c'est un argument positionnel sur le compteur dans cette méthode. Nous ajoutons ensuite le compteur à la session et finalement nous engageons dans la base de données. Que se passe-t-il si on trouve un contre-record ? Nous faisons cela sur le compteur d'autres els compteur de points Glass est égal à une base de données ce document de session ici . Nous avons juste à un orteil le compteur qui comptent et commettent la session. Enfin, nous pouvons mettre ceci sur la page. Il y a encore une chose avant d'exécuter l'application, nous devons importer l'objet DB à partir de l' application, puisque nous accédons à la session B point. Donc, en haut du fichier après l'importation des modèles à partir de l'application, importez le B, enregistrez le fichier et maintenant exécutez votre application flasque. Rendez-vous vers un hôte local. Appelez 5000 la première fois que la page dira que le compteur est un réel débat et vous verrez le compteur incrémentiel, même si cela semble très simple sur la page, vous avez maintenant des graphiques quelques concepts assez fondamentaux sur le site développement sans le savoir. 48. Configurer notre infrastructure de test: les développeurs professionnels intègrent les tests dès le début à leur flux de développement, et mon intention est de vous apprendre comment fonctionne un développeur professionnel. Nous allons donc écrire une suite de tests pour cette application. Si vous utilisez python n'importe où, vous devrez créer une base de données de test manuellement. Puisque nous n'avons pas d'accès root à leur serveur my suite, je vous informe quand faire cela. La première chose que nous devons faire est de modifier les personnes d'application que je dépose afin que nous puissions remplacer les viraux de réglage du test. Donc, sur la méthode create APP à ce qui suit, cela nous permet de passer des arguments de mot-clé arbitraires à la fonction sans les trouver assez. Ensuite, après la ligne de chargement CONFIG à ce qui suit, cette méthode de mise à jour nous permet d'écraser les paramètres initialement chargés à partir du fichier de paramètres . Enregistrez le fichier. Ensuite, nous devons agir dans ma suite Root mot de passe toe le point flats est venu fichier et le fichier Savings B Y afin que le script de test soit capable de créer et de détruire la base de données de test. Pourquoi avons-nous besoin d'une base de données de tests séparée pour les tests ? Eh bien, l'idée est que vous ne gâchez pas les données existantes dans votre base de données principale. Nous voulons également nous assurer que tous les mots de code avec des données fraîches chaque fois que nous exécutons les tests. Sinon, il pourrait y avoir des données restantes qui pourraient gâcher la validité des tests. Donc, sur point flasque em à la ma suite racine mot de passe viable et mettre votre passeport route pour PC ou Mac. Si vous êtes sur python n'importe où, faites-le ressembler à ceci. Enregistrez le fichier. Ensuite, nous devons ajouter le mot de passe racine ma suite aux paramètres B Y Pendant que vous y êtes. Ajoutons également ces alchimie de suite personnalisée, paramétrage pour les modifications de piste. Sinon, lorsque vous exécutez la suite de tests, Alchemy se plaindra de ne pas le trouver. Enregistrez le fichier. Ensuite, nous allons ajouter un utilitaire pour créer et détruire une base de données de test. J' ai choisi de placer cet utilitaire sur un nouveau dossier you tills. L' idée avec cet utilitaire est que nous ne répétons pas le même code encore et encore dans chacun des tests, et il gérera également gracieusement. S' il n'y a pas de mot de passe root, définissez quatre cas comme les utilisateurs python partout. Alors allez-y et créez un dossier you tills et ajoutez-y ce fichier B y afin que nous puissions l'importer en tant que module. Prochaine grande. Un fichier appelé test sur le score db point b y et mettre le contenu suivant dessus. La classe est plus ou moins explicative sur la méthode innit, nous avons dit le viable pour celui de sa connexion. Si le mot de passe racine est présent ou non, notez que le nom de la base de données test sera quel que soit le nom de la base de données principale, et à la fin, il balises sur le test de score. Donc, si vous êtes celui de son nom est compteur, alors la base de données de test qui sera créée sera compteur sur le test de score. Ensuite, nous avons une création sur la méthode Devi score qui crée la base de données de test et retourne la chaîne de connexion finale à l'appelant. Enfin, nous avons une méthode DB drop qui détruira la base de données de test. Notez que les deux méthodes ne créent et détruisent que la base de données test Si le mot de passe root réinitialise. D' accord. Avec cela hors du chemin, créons notre premier test. Je mets toujours chaque test APS dans le dossier APP lui-même de cette façon. Un test plus ancien lié à sa fonctionnalité est juste à l'intérieur de celui-ci. Donc, créez un test, être dans le dossier du compteur et permet de commencer par les importations dans la première section. Nous importons la méthode principale de l'usine d'applications et changeons son nom pour créer la base d'APP parce que nous allons avoir notre propre méthode de création d'application. Dans le test, nous importons également le test unitaire, qui est la bibliothèque de tests Python intégrée. Dans la prochaine dépendance, nous devons importer manuellement les observations de la fiole de pensée M, en utilisant le DRM de la bibliothèque car le fichier est exécuté directement par python et non par flasque. Ils durent trois lignes importent nos modèles et l'utilitaire que nous venons de créer pour la création de la base de données test . Ensuite, définissons notre première classe de test. C' est les fichiers sont organisés par classes et tests correspondants, et vous pouvez avoir plus d'une classe sur un seul fichier. Pensez à une classe de test comme un groupe Off tests liés, puisque notre application est si simple, aura juste une classe appelée contre-test. Donc, nous commençons par ce qui suit. Concentrez-vous sur les méthodes de mise en place et de démontage. Ce ne sont pas des méthodes obligatoires. Remarquez les noms de méthode de cas de chameau bizarres, mais c'est ainsi que vous devez les écrire. La méthode de configuration est exécutée au début de son test jusqu'à la fin de chaque test. L' idée est que vous commencez avec une nouvelle version de l'APP pour chaque test. Donc, sur la mise en place nous première instance, elle a mangé notre pratique, testé l'utilitaire et obtenir la connexion de base de données à partir de lui. Ensuite, nous créons une instance sur une application flasque et inventé sur l'usine APP. Mais notez que cela est fait en exécutant cette méthode de création d'application sur le test, qui revient juste. Une instance de notre application croit que les économies sont remplacées. Ce sont des paramètres plats et vous les avez tous vus à l'exception des tests. Lorsque vous définissez un flasque jusqu'à Toby en mode test, Flask désactive la capture d'erreur lors du traitement des requêtes afin que vous puissiez obtenir de meilleurs rapports d'erreur lors de l'exécution des tests. Requêtes contre la demande. Notez que nous définissons la suite Alchemy qui conseille votre I au DVD votre J'ai retourné par notre test l'utilitaire B. Une fois que nous avons l'usine, nous ne pouvons pas créer la pièce la plus importante pour les tests. Le client de test. Donc, nous appelons cette application et il permet d'envoyer des demandes à nos différents Oural et l'APP répondra exactement comment sont l'application normale fait. Enfin, nous devons créer toutes les tables d'application sont testées être utilitaire crée une base de données, mais pas les tables à l'intérieur. Jusqu' à présent, nous l'avons fait avec les migrations. Mais l'alchimie de suite fournit une méthode froide. Créez tout ce qui peut créer toutes les tables dont les modèles ont besoin. La méthode d'arrachage est le contraire. Il laisse d'abord tomber toutes les tables. Et puis nous avons appelé notre utilitaire de base de données de test pour détruire la base de données de test. Mais quel est ce contexte APP ? Business Sur les deux méthodes, cette méthode de contexte APP nous permet de simuler n'importe quoi à l'intérieur du bloc with, comme si nous l'exécutions à partir de la fiole. Exécutez à base de plantes. Rappelez-vous que je vous ai dit que ce fichier est tiré de Typhon et pas de flasque. Donc, si nous avons couru db dot créer tout ce que nous avons ressenti le contexte. Nous obtiendrons une erreur car l'objet DB est créé une fois que nous exécutons flask comme lorsque nous faisons appartements. Exécuter le contexte est l'une de ces choses auxquelles vous vous habituerez davantage lorsque vous l'utilisez plus. Pour l'instant, pensez que si nous avons besoin de faire des opérations qui fonctionneraient normalement à l'intérieur d'une vue, vous devez exécuter. Utiliser le contexte que je connais ressemble à beaucoup de choses, non ? Ne vous inquiétez pas. C' est dur la première fois que vous voyez tout cela, mais chaque feu de test, vous aurez besoin de tout ce code d'abord. Donc, c'est l'une de ces fois que vous pouvez copier et coller et ne pas vous sentir mal à ce sujet. Donc, avec cela, nous pouvons enfin créer notre premier test. 49. Notre premier test: jusqu' à présent, nous venons de mettre en place des cours de test et nous enseignons à écrire notre premier test. Alors faisons-le. Son test doit commencer par le mot test sur le score afin que la bibliothèque de test unitaire sache qu'elle doit exécuter la configuration avant et la déchirure après. Donc c'est juste la première partie. Ok, donc le premier test s'appelle test sur le compteur de score. abord, nous exécutons une demande à nous-mêmes point app en frappant l'indice euro. C' est ce que le couper leur ISS. En outre, pour entrer dans la méthode signifie que c'est une requête get. La sortie de cette opération est stockée dans le RV viable, et ce sera un tas de sorte html de ce que vous obtiendrez si vous faisiez une source de vue hors de l' application réelle. Ensuite, nous voulons affirmer que la chaîne est quelque part sur le HTML. Nous savons que si l'application fonctionne correctement et c'est la toute première fois, nous obtiendrons le compteur de chaîne semi deux-points un sur la sortie, non ? C' est ce que les tests se résument à affirmer ou à s'assurer que quelque chose que nous attendons à se produire se passe si le résultat qui affirme ses chutes. Le test est dit Toby, ne passe pas. Enregistrez le fichier. Avant d'exécuter le test, nous avons besoin d'un coureur de test dans le dossier racine. Avant d'exécuter le test, Donc, créez un test du fichier P Y sur le dossier du compteur de visiteurs et mettez la couche suivante. L' extrait détectera automatiquement tous les tests dans toutes les abside de votre application et les exécutera. Enregistrement d'un fichier. Si vous utilisez python n'importe où, vous devez créer la base de données de test manuellement. Alors allez à la section de vos bases de données et créez les thérapies de contre-test. Si vous utilisez Windows ou Mac, nous sommes prêts à partir. Alors ouvrez votre terminal. Assurez-vous que votre M virtuel est activé et tapez par des tests téléphoniques. Député. Vous verrez un petit point, puis le message a exécuté un test en X secondes. Ce petit point représente le test du compteur de test. Si vous prenez l'air, essayez de voir ce qui produit l'air et vérifiez deux fois. Le code est bon. Vous pouvez vérifier toute la base de code ici, alors ajoutons un autre orteil d'affirmation. Notre premier test. Nous savons que lorsque nous chargeons la page la première fois que nous obtenons le compteur de messages deux-points un. Mais que se passe-t-il si nous chargeons à nouveau ? Droit ? Nous devrions obtenir le compteur deux-points pour que nous puissions ajouter la nouvelle affirmation dans le test du compteur de test juste après le 1er 1 Donc, à ce qui suit, sauvegardez le fichier et exécutez le test pour voir ce qui se passe. Super. Les tests passés. Si vous aviez créé un tout nouveau test et affirmé le à quoi pensez-vous qu'il se serait passé ? Essaie de dire à voix haute, j'attends. Le test aurait échoué car si vous créez un nouveau test, la base de données sera réinitialisée par l'ensemble de fonctions. Sous le comptoir sera à nouveau un. Allez-y et essayez. Comme vous pouvez le voir, c'est à quoi ressemble un test défaillant. N' oubliez pas de rétablir votre code toe comme ça. Et avec cela, nous pouvons passer à la création de nouvelles applications, qui seront plus utiles mais aussi plus complexes. Un bloc personnel 50. Flogger, un blog simple Flask: nous allons maintenant créer une application de blogue personnelle où nous apprendrons beaucoup des concepts qu'un développeur professionnel utiliserait. Le bloc vous permet de lui élever un auteur et de se connecter comme cet auteur. Après avoir créé notre auteur, nous pouvons créer de nouveaux messages avec des images, des catégories et des tags. Nous pouvons également voir des articles par catégories et par tags avec des capacités de pagination complètes . Enfin, sera en mesure, remorquer, éditer ou supprimer des messages. En surface, il semble plus ou moins simple, mais le code derrière ce sera un bon défi par rapport à ce que vous avez appris jusqu'à présent, et il vous donnera de nouvelles perspectives sur l'endroit où aller ensuite. Commençons donc à configurer l'application. Comme d'habitude. Nous avons des instructions pour Mac et Windows ou Python n'importe où, alors passez à la leçon qui vous convient. 51. Configuration d'application initiale sur Mac et Windows: Nous créons un tout nouveau répertoire pour notre application de blogs. Donc, faites ce qui suit dans les fenêtres. Faire peur c slash opt slash blogueur dans mac faire chère slash Off tranche plus Maintenant changer ce répertoire. Maintenant, nous allons configurer notre environnement virtuel et activé. Maintenant, nous devons mettre en place nos exigences. Fichier Txt Alors ouvrez Adam sur ce dossier en faisant adam dot ou en ouvrant Adam, puis en ouvrant le dossier O P. T Flow Ger. Maintenant, nous allons créer le fichier txt d'exigences. Les paquets de base que nous allons installer sont les suivants vos besoins réels. fichier TXT devrait ressembler à ceci. Enregistrez le fichier et installez-le en effectuant l'installation papier. C' est nos exigences Txt. 52. Configuration d'application initiale sur PythonAnywhere: nous allons créer un tout nouveau répertoire pour notre application de blogs. Alors accédez à votre console bash et tapez ce qui suit. Faire cher jusqu'à ce que le slash r p t slash plancher changer à ce répertoire CD jusqu'à d slash orbitant slash blogueur Maintenant, nous devons mettre en place notre environnement virtuel, faire petit tiret lymphatique B par 3.6 flutter et activé le travail sur pfleuger. Maintenant, nous allons créer le fichier txt d'exigences. Les paquets ont été installés sont les suivants vos besoins réels fichier txt. Elle va ressembler à ceci, enregistrer le fichier et installé les paquets en faisant peeping volé pointer nos exigences l' éteint Nous avons maintenant besoin de mettre à jour les paramètres Web de notre application. Donc, dirigez-vous vers le Tableau de bord Web d'abord sur la section de code a changé le code source Répertoire à domicile Votre nom d'utilisateur. Oh, jolie Fuckiger. Changez ensuite le fichier de whisky et mettez à jour la ligne cinq avec le nouveau répertoire Enregistré un fichier. Enfin, mettre à jour le rituel et orteil celui en flottant. Il suffit de cliquer sur le lien et de taper Pfleuger et il sera automatiquement rempli. Rechargez l'application Web avec le bouton vert 53. Nos bibliothèques d'applications: encore une fois, passons en revue les exigences. Les livraisons Txt pour mieux comprendre ce que nous incluons et pourquoi ce sont des anciennes bibliothèques que vous avez vues auparavant. Cela inclut Flask Python, Durham pour l'environnement, gestion des variables sur la suite My, ou M sur les bibliothèques de migration. WTI Forms est une bibliothèque python très populaire à gérer. HTML formulaires facilement et efficacement au lieu de nous taper les formulaires manuellement et de valider leurs formulaires d'entrée wt. Est-ce pour nous un curieux débat sur la bibliothèque. C' est censé être l'abréviation éteinte. Ce que les formulaires et non l'autre WTF que nous connaîtrons à propos de markdown est une norme de saisie de texte qui nous permet de formater le contenu en utilisant un petit ensemble de codes afin que nous puissions appliquer des italiques gras , liens hypertexte et d'autres fonctionnalités de formatage à notre bloc Post slog. Si je suis un petit utilitaire qui nous permet de produire des Oural conformes aux normes à partir d'entrées de texte , nous allons l'utiliser pour générer les messages de bloc. L' Oural. Enfin, oreiller est un enrouleur autour de P I. L, qui signifie la bibliothèque d'imagerie Python. Il nous permet de redimensionner et de convertir des images pour nos posts bloqués, et c'est tout. Passons maintenant à l'usine d'applications de base 54. L'application centrale: Configurez rapidement l'application principale. Si vous ne voulez pas taper tous les jours, vous pouvez télécharger un fichier sit hors de cette branche du référentiel floater. Suivant va mettre en place notre flasque m comme suit à nouveau. Certaines de ces choses que vous avez vues vont créer une base de données appelée Pfleuger avec l'utilisation du passeport humain et inclure le mot de passe root pour nos tests. Si vous utilisez python n'importe où, n' oubliez pas de changer l'hôte DB l'hôte dans votre tableau de bord de base de données. Les deux derniers noms de bloc viraux et le chemin d'images de poste blogué depuis le nom de la blawg et le chemin dans notre serveur où nous allons télécharger le bloc Images Post si vous utilisez Windows, a dit que le chemin en utilisant le formatage de fenêtres par téléphone n'importe où devrait ressembler ceci. N' oubliez pas d'entrer votre propre nom d'utilisateur au-dessus des paramètres de la porte suivante B y Avec les variables d' environnement que nous venons d'entrer. Nous créons maintenant notre gérer Me Pourquoi, comme ça ? Maintenant, créez l'application P y. avec le code suivant. Rien que tu n'as jamais vu avant, hein ? Nous pouvons maintenant créer notre premier plan. L' application Blawg. Créez d'abord un dossier de bloc, créez un fichier B Y vide à l'intérieur, puis écrivez le fichier B y interviews suivantes. Puisque nous n'avons pas encore d'opérations de base de données, allez-y et tapez flask, exécutez et donnez l'application qui a été. Assurez-vous que votre M virtuel est activé. Lorsque vous accédez à votre hôte local, vous devriez voir la page d'accueil du bloc de titre. Maintenant, nous allons configurer la base de données. 55. Configurer la base de base: Comme vous vous y attendez probablement. Nous avons deux flux pour configurer la base de données quand pour Windows et Mac et l'autre pour python n'importe où puisque nous l'avons fait auparavant, je vais passer rapidement à travers cela pour les deux. En regardant ma suite avec votre itinéraire, utilisateur et mot de passe, créez la base de données Pfleuger et maintenant créez l'utilisateur et le mot de passe. Autoriser l'utilisateur à accéder pleinement à la base de données et recharger les privilèges. Maintenant, quittez en utilisant exit et essayez de journaliser en utilisant le nouvel utilisateur APP. Si vous êtes en mesure de regarder en bonne forme maintenant, essayez d'utiliser le flotteur qui obéit. Si vous n'avez pas d'erreur, nous sommes bons maintenant faible goutte. En utilisant exit, nous allons créer une base de données appelée Pfleuger sur le Créateur qui sont basés sur le type de section pfleuger sous le nom de la base de données. Cela va créer la base de données pour vous. Cependant, rappelez-vous que ce sont basés. Le nom sera votre nom d'utilisateur, plus un signe dollar. De plus, ce nom étonnant que vous avez entré Pour vous assurer que nous pouvons nous connecter à la base de données, ouvrez une console bash et tapez ce qui suit, en le remplaçant par votre nom d'utilisateur, mot de passe et adresse d'hôte de base de données. Maintenant, essayez d'utiliser la base de données flottante. Si vous ne montez pas, il y avait du bien. Déconnectez-vous maintenant en utilisant exit 56. Créer l'application Author: donc la première chose à aborder est la création du flux d'authentification pour l' auteur du blog  ? Nous supposerons que n'importe qui peut s'inscrire en tant qu'auteur pour notre bloc, car je ne veux pas compliquer l'application pour marcher pour nous, au moins à ce stade. Alors allez-y et créez le dossier auteur sur la route de l'application, puis créez un aperçu du fichier Y NDP afin que nous puissions importer à partir d'un autre endroit. Enfin, nous allons créer le fichier vues B y et ajouter l'avis suivant. Nous mettons les deux méthodes get et post ici. Nous utiliserons la méthode post lorsque nous créerons l'inscription. Pour la suite, ajoutons ce nouveau module auteur jusqu'à l'application p y. Donc, dans la section import Blueprint, ajoutez l'application auteur. Enregistrez les deux fichiers dans une exécution de flasque. Si vous visitez le registre local hôte 5000 barre oblique, vous devriez voir la page d'enregistrement de l'auteur 57. Le modèle d'auteur: Commençons à travailler sur le modèle auteur, Créer un fichier Models B Y sur le dossier auteur et passons à ce qui suit. Nous allons avoir un objet auteur avec un nom complet, email et mot de passe. Puisque tous ces champs sont des chaînes, nous utilisons le type de chaîne et avons passé la longueur de ce champ. Notez que nous rendons l'e-mail unique. Le contournement de l'unique équivaut à vrai drapeau. Cela signifie que deux auteurs ne peuvent pas avoir le même e-mail, et aussi que la table va créer un index de messagerie pour des recherches plus rapides sur les auteurs par e-mail. Next va créer la méthode image hors de la classe auteur pour ressembler à ceci. Cela sera appelé lorsque nous créons un nouvel auteur va enfin créer une méthode de reproduction pour afficher nos objets auteur sur l'étagère. On en a fini avec le dossier. Maintenant, nous allons créer les tables de faucilles réelles en émettant une migration 58. La migration du modèle d'auteur: rappelez-vous ce que je vous ai dit sur les migrations et le chemin vers les modèles dans la section précédente. ce moment, il n'y a pas de chemin vers les mannequins. B y de l'application p y. Comme il n'y a aucune mention des modèles d'auteur dans nos vues d'auteur, si leurs migrations ne voient pas le fichier, ne créeront pas les migrations appropriées. Donc, sur les vues de l'auteur à la ligne suivante. Après Blueprint, importez et enregistrez le fichier. Maintenant, allez à votre terminal, en vous assurant que votre lampe virtuelle est activée et tapez fiole bébé. Dans celui-ci, vous verrez le dossier de migration en cours de création. Avec ses paramètres initiaux, nous pouvons maintenant faire l'opération de migration où le fichier d'opérations de base de données ou le snap shirt est créé. Donc, faites flasque le B migre. Si vous obtenez une erreur ici, assurez-vous que mon serveur de suite est activé et que vos informations d'identification sur le flasque m r correct. C' est une bonne pratique de vérifier le fichier qui a été généré avant d'effectuer des opérations sur la base de données. Alors allez dans le dossier Migrations et dans le sous-dossier Versions, ouvrez le fichier. À l'intérieur, vous verrez que la méthode de mise à niveau crée la table auteur, puis ajoute les colonnes. Nous avons sur le modèle. La méthode de rétrogradation supprime la table auteur, qui est logique si nous voulions annuler cette opération enfin, pour appliquer leurs migrations sur la base de données et créer une mise à jour, les tables ne flask db upgrade. 59. Tester le modèle d'auteur dans la Shell: après l'application de la migration. C' est une bonne pratique de tester si la table a été correctement configurée dans le spectacle. Alors, ouvrons un shell de flasque et essayons de faire quelques opérations de base sur le modèle auteur. Donc, deux flacons shell maintenant importer le modèle auteur de modèles point auteur importer auteur, et c'est créer un auteur en faisant auteur égal auteur. Le nom complet est égal à John Smith. Email est égal à J. Smith à l'exemple point com Dernier mot. Mon mot de passe. Souvenez-vous, à ce stade, nous n'avons rien enregistré sur la base de données. Nous devons ajouter l'objet à celui d'une session d'abord, la session B à l'auteur. Que s'est-il passé ? Eh bien, les choses que l'importation du modèle n'importe pas automatiquement la suite Alchemy. L' objet B. Donc, nous allons l'importer à partir du fichier p y de l'application et réessayer à partir de l'importation de l'application db Devi session ajouter l'auteur. C' est plus comme ça. Maintenant, l'objet est ajouté à la session mais n'a pas tout à fait été écrit. Orteil qu'une base, c'est en standby en quelque sorte parler. Une façon de vérifier si l'enregistrement a été enregistré est de vérifier s'il a un i d. Donc, donnons l'objet à ce que je base en validant la session et maintenant en vérifiant s'il a un i d Perfect. C' est le peu que vous cherchez pour que nous puissions avoir un bon départ pour notre prochaine leçon. 60. Le formulaire d'inscription de l'auteur: nous allons maintenant créer notre tout premier formulaire qui permettra à nos auteurs de s'inscrire. Historiquement, création de formulaires était une douleur pour les développeurs parce que toutes les opérations impliquées, qui incluaient le rendu du formulaire sur la validation de page des champs de rechargement de données avec les données saisies par l'utilisateur lorsque quelque chose n'était pas en passant la validation et en utilisant le même formulaire pour l'édition. Merci, toa Incroyable bibliothèques open source comme les formulaires WT. Ce processus est maintenant beaucoup plus rationalisé et nous verrons comment mettre en œuvre cette fonctionnalité. Les formulaires pour une sieste doivent être dans le même dossier, donc je crée généralement juste un formulaire qui b y fichier à l'intérieur du module. Alors allez-y et créez-en un pour le dossier auteur. La première création formelle est le formulaire d'inscription. Donc, tapez ce qui suit. Nous commençons à déclarer une classe de formulaire de registre. Comme vous pouvez le voir, c'est une sous-classe hors dernière forme, qui est la classe principale de la forme de fiole WTI qui nous donnera beaucoup de fonctionnalités dont nous avons besoin . A l'intérieur, nous définissons une propriété de nom complet. Il y aura un champ Stringfield ou, en HTML, , un champ de saisie de texte à l'intérieur du champ. Nous avons passé ce que l'étiquette ou le titre à côté du champ sera, dans ce cas, le nom complet, et enfin, nous avons une liste des validateurs dont nous avons besoin. Dans ce cas, nous sommes juste en train de dire WT formulaire que ce champ est obligatoire. Il ne peut pas être laissé vide. Ensuite, nous avons la propriété email, qui est un champ e-mail, qui en HTML a une manipulation légèrement différente. Ensuite, un champ de texte brut a une étiquette hors adresse e-mail, et il est également obligatoire mais doit être validé par rapport à un format d'e-mail. La propriété de mot de passe est, comme prévu , un champ de passeport, qui dans les formulaires HTML vous nous voyez petits points ou étoiles au lieu du contenu réel, et celui-ci est également requis mais a également un minimum et maximum à gauche. Nous ne voulons pas de mots de passe de moins de quatre caractères. Enfin, nous avons une propriété confirmée, qui est également un champ de mot de passe, et cela nous permet de demander à l'utilisateur de saisir à nouveau le mot de passe, alors assurez-vous qu'il le saisit correctement. Pour appliquer cela. Nous avons un type spécial de validation appelé égal à l'endroit où vous passez le champ à comparer , dans notre cas, le champ de mot de passe au-dessus et ce que leur message pour montrer à l'utilisateur si elle ne correspond pas. Comme vous pouvez le voir, les formulaires et les modèles sont des choses distinctes, et parfois nous aurons des champs dans le formulaire qui n'apparaissent pas dans le modèle. Alors maintenant, faisons les importations. La première ligne importe la fiole WTF. La deuxième ligne importe les types de remplissage dont nous avons besoin sous la fonction des validateurs. Et enfin, nous importons le champ e-mail à partir d'une bibliothèque de formulaires HTML cinq WT séparée qui offre une meilleure gestion du côté HTML pour les navigateurs modernes. Enregistrez le fichier, et avec cela, voyons comment nous rendons le formulaire dans un modèle. 61. Le modèle d'inscription d'auteur des auteurs: nous allons maintenant voir comment rendre le formulaire que nous venons de créer dans un modèle de registre des auteurs . La classe de formulaire de registre nous permet de créer une instance de formulaires WTI que nous pouvons transmettre directement à un modèle. Alors allez-y et ouvrez le fichier de vues de l'auteur et remplacons la fonction de registre ce qui suit ici, nous créons une nouvelle instance hors de notre registre étranger et assignant besoin toe le formulaire viable. Nous avons ensuite passé l'instance de formulaire toe que le modèle enregistré de l'auteur créera ensuite avant d'enregistrer le fichier. Nous avons besoin de la fonction de modèle de rendu pour la vue ainsi que la classe de formulaire de registre . Alors modifiez ces lignes sur l'orteil supérieur ressemblent à ceci. Remarquez comment je laisse les bibliothèques python sur le dessus et insère un espace entre elles et nos propres importations de bibliothèque. Après cela est une bonne règle à suivre à des fins de lisibilité, enregistrez le fichier. Donc, nous devons maintenant créer le dossier templates pour notre application comme nous l'avons vu dans sa première obligation de bonjour monde. Le dossier Template réside au niveau racine, et à l'intérieur de celui-ci crée le dossier de modèles APS auteur. Alors allez-y et créez les modèles. Dossier auteur une fois convenu que Creative a déposé froid registre point html Maintenant mettre le html suivant sur le fichier. Alors passons en revue ce code en détail. Tout d'abord, nous créons le formulaire. En utilisant la méthode post et pointant l'orteil d'action sont registre fonction avis que nous avons utilisé dot register ici. Cela fait référence à la fonction enregistrée de Blueprints auteur. Mais puisque nous appelons ce modèle sur Lee à partir des vues de l'auteur, nous n'avons pas besoin de passer la chose du Blueprint complet, Cependant, si nous voulons l'utiliser à partir d'un autre Blueprint avec besoin d'utiliser l'auteur sur l'application de partition que inscrivez-vous dans la fonction Ural. Ne vous inquiétez pas, Flask vous indiquera s'il a besoin d'une empreinte complète. Ensuite, vous remarquerez que nous avons une forme bizarre frappée intacte. Viable. Le stock insère un jeton C SRF. CSR F signifie falsification de requête inter-site, et c'est une fonctionnalité de sécurité que WT forme fournit. Essentiellement, un jeton CSF vous protège contre les formulaires utilisateur inconnus, se vantant du serveur en générant un jeton aléatoire chaque fois que le formulaire est rendu juste après que vous verrez quatre vies avec l'objet formulaire sur chacun des champs. abord, nous affichons l'étiquette, puis le champ réel. Enregistrez le fichier. Maintenant, allez-y et exécutez le serveur de fiole avec flasque. Exécutez et naviguez pour vous inscrire. Vous verrez le formulaire avec les quatre champs. Maintenant, essayez de voir le code source afin que vous puissiez voir ce flasque est sorti mettre au navigateur Juste à gauche, comme sur la page et sélectionnez Afficher la source de la page. Vous verrez que la forme WTI fait beaucoup de levage lourd pour nous faire sortir le terrain . I DS noms et autres propriétés ont également remarqué le CSR de la valeur de jeton en haut. Si vous actualisez la page tout en regardant la source, vous verrez que la valeur change à chaque fois. L' autre chose soignée est qu'une partie de la validation du formulaire est faite pour nous au niveau du navigateur. Si vous avez un navigateur compatible HTML cinq, par exemple, si vous ne sentez pas le nom complet et essayez de soumettre, le navigateur se plaindra à ce sujet. Vous verrez une sorte de dialogue apparaître à côté du terrain. Même chose si vous ne mettez pas un e-mail valide sur le champ de l'adresse e-mail ou si vous ne sentez pas le champ de mot de passe Mais nous voulons aussi wt form toe évalué un déformé côté serveur, et pour cela nous devons modifier notre vue et imprimer les erreurs dans le formulaire. Vérifions comment faire ça. 62. Validation de forme d'auteur: lorsque vous soumettez le formulaire, formulaire WT expose une méthode appelée validation sur Soumettre qui est disponible sur le formulaire vers le haut. C' est à cet orteil. L' auteur de You file sur la méthode Register à l'adresse suivante : Enregistrer le fichier. Maintenant, exécutez le serveur flash et entrez tous les champs et appuyez sur Um, il vous verrez le patriote frais sur l'affichage des mots validés. Cela signifie que le formulaire WT a vérifié tous les champs et les a trouvés valides. Donc, il passe la requête à la section froide à l'intérieur du if. Maintenant, revenez en arrière et essayez d'entrer un mot de passe de trois lettres sur les deux champs de mot de passe. Si vous vous souvenez d'une classe de mousse de registre, il demande le mot de passe pour être au moins quatre caractères, Puis soumettre le formulaire. Vous verrez maintenant que le formulaire est réaffiché, ce qui signifie que la section if n'est pas valide et que les demandes sont transmises au modèle de rendu en bas. Cependant, nous ne voyons aucune erreur dans le formulaire lui-même. C' est parce que nous n'affichons pas les erreurs dans le modèle. Allons réparer ça. Son champ a une liste aérienne, mais faisons simplement le mot de passe un premier pour vérifier comment cela fonctionne. Donc, sur le formulaire html de registre au code suivant le jour du mot de passe, Enregistrer le fichier et maintenant exécuter le serveur de flasques et essayer de mettre un mot de passe de trois caractères impressionné Sommet. Vous verrez l'air affiché à côté du champ comme ceci. Mais comme vous le voyez déjà, si nous sommes allés dans ce que les messages aériens pour tous les champs, cela entraînera beaucoup de code répétitif. Droit ? Rappelez-vous le principe sec. Nous allons donc tirer parti d'une fonctionnalité du modèle de gingembre ING moteur appelé macro . Une macro nous permet de créer un code extrême réutilisable qui peut fonctionner comme une fonction où nous passons des paramètres et quelque chose est retourné . Sur la base de ces paramètres, j'ai généralement préparé des fichiers de modèles de macro avec un trait de soulignement afin de me rappeler que ces fichiers ne doivent pas être utilisés par eux-mêmes, alors créez le formulaire de soulignement. Helpers fichier html sur le dossier racine du modèle et tapez La note suivante. J' ai appelé ça des aides de forme. C' est parce que je peux stocker plus d'un micro par fichier, donc la première macro de ce feild est appelée Render Field. J' ai besoin d'une fonction que je vais passer un objet de champ de formulaire WT et vous obtiendrez quelques propriétés importantes de cet objet. abord, il affiche l'étiquette Fields, qui est en quelque sorte le titre du champ. Ensuite, nous sortons le contenu des champs avec tous les arguments de mot-clé que je veux passer et par place en utilisant le filtre de gingembre sécurisé car ce n'est pas le code d'entrée utilisateur, et donc je ne veux pas que la macro HTML l'échappe. Alors, quel type d'arguments de mots-clés pouvons-nous passer ? Eh bien, nous pouvons passer un cours pour coiffer le champ ou d'autres paramètres de costume. Nous verrons ça plus tard quand nous nous formerons. Enfin, nous imprimons automatiquement et erreurs ce champ a en utilisant que vous l ou sur la balise html de liste de commande . Donc, nous voyons les erreurs dans une balle, au moins pour moi. Enregistrez le fichier et maintenant revenir à la course pour le fichier html et changez-le pour ressembler à ce qui suit. Ça a l'air plus propre, n'est-ce pas ? Maintenant, vous avez juste besoin d'ajouter la macro toe n'importe quel modèle, puis utiliser la fonction de champ de rendu sur chaque champ. Enregistrez le fichier et assurez-vous d'exécuter le serveur flash et appuyez à nouveau sur registre. Vous verrez le même formulaire, mais maintenant tout se sent avoir l'erreur de vérification pour le champ cette fois essayé d'entrer deux mots de passe différents plus de quatre caractères. Appuyez sur, hum, et vous devriez voir ce qui suit sur la leçon suivante. Nous allons rendre l'application meilleure avec le framework bootstrap. 63. Une meilleure application de recherche: dans cette leçon mettra un orteil de champ légèrement meilleur. Notre application, en utilisant le tir de bootstrap, va également mettre en place un modèle HTML de base qui sera le modèle maître pour toutes les pages hors de notre obligation. Donc, nous allons créer le fichier l vapeur de base en route sur le dossier Modèles avec le contenu suivant ici étaient définir les zones de contremaître Toby, rempli par des modèles héritant de ce modèle de base, un titre, une navigation et la zone de contenu principale. Nous injectons également le bootstrap CSS Online neuf et le JavaScript Bootstrap sur les lignes 29 à 31. Notez également comment nous avons sur le pied de page le nom du bloc en utilisant tout ce qui est stocké dans le bloc Nom Come pieds viables. Enregistrez le fichier et ouvrez maintenant le fichier html de registre de l'auteur à faire ressembler à ce qui suit ici. Nous faisons maintenant en sorte que ce modèle hérite du HTML de base. Nous avons dit un titre et mis notre contenu principal sur le bloc de contenu. On a aussi ajouté un peu d'orteil de Dave. Mieux afficher le formulaire en utilisant le grand système bootstrap. Enfin, remarquez comment nous utilisons maintenant les arguments de mots-clés de notre macro champ de rendu, contournant un verre de bootstrap sur tous nos champs sur a également ajouté un rôle de formulaire orteil le tack d'ouverture de formulaire . Même si ce cours n'entrera pas en détail sur la façon d'utiliser bootstrap, il est vraiment facile de passer un après-midi à apprendre la bibliothèque. Ce n'est pas trop compliqué. Enregistrez le fichier. Et avant d'exécuter notre serveur flasks, nous devons faire quelques modifications sous macro de champ de rendu comme suit. Nous avons ajouté un orteil de classe de groupe de formulaire, les champs Dave ainsi qu'un orteil de classe de danger texte. Les erreurs enregistrent le fichier. Maintenant, on est sur le serveur de flasque et on va s'inscrire. Ça a l'air bien plus sympa, non ? Essayez de saisir un mot de passe avec trois caractères et appuyez sur le bouton Enregistrer. Vous verrez une belle erreur à puces rouges. Ok, assez de bonbons pour les yeux. Voyons maintenant comment nous enregistrons les informations de l'auteur correctement dans la base de données. 64. Traitement du formulaire d'inscription des auteurs: Voyons donc comment nous créons réellement l'enregistrement de l'auteur sur la base de données avec les informations que nous entrons sous registre pour So ouvert, le fichier de vues de l'auteur. Et ajoutons ce qui suit dans la section Valider sur soumettre. Ok, faisons ça étape par étape. La première chose que vous remarquerez est que la fonction de hachage de mot de passe bizarre générer. Qu' est-ce que c'est ? Une règle générale de sécurité que, malheureusement, certains développeurs volent, Ne pas observer est que nous ne, jamais, jamais , jamais sûr mots de passe exactement comme l'utilisateur l'a tapé. Si un hacker pouvait accéder à Atabay, il serait en quelque sorte un jeu pour tous nos utilisateurs. Donc, la meilleure pratique est d'encoder le mot de passe. Utilisation d'une méthode appelée hachage. hachage génère une chaîne aléatoire de caractères en utilisant une autre chaîne aléatoire de base appelée Assault. De cette façon, même si les mêmes problèmes de mot de passe dans un autre site Web, le mot de passe haché est différent parce que hors du sel, la chose cool est que même pas nous un développeur sait quel est le mot de passe. Il est vraiment difficile de retourner ce mot de passe à l'orteil un texte clair, même si vous connaissez le sel. La seule chose que vous pouvez faire est de comparer ce hachage de mot de passe avec le hachage du même mot de passe et de le retourner par l'utilisateur. Nous allons voir comment faire cela sur la méthode de journalisation va écrire bientôt. Une fois que nous avons créé le hachage, nous créons un nouvel auteur ou une instance avec un nom complet, e-mail et un mot de passe haché. Ensuite, nous ajoutons l'objet auteur à celui d'une session et finalement validé afin qu'il soit enregistré dans la base de données imprimera l'auteur i d à l'écran pour s'assurer que l'enregistrement était à elle. Avant de tester cela, nous devons ajouter le mot de passe haché. Je burrito le fichier, donc tapez ce qui suit en ligne, aussi. Et puisque nous faisons que de ses opérations à l'instance DB en ligne pour enregistrer le fichier et aller de l'avant et exécuter le serveur flask et entrer quelques informations d'auteur sous forme et appuyez sur elle soulevé, vous devriez voir cette sortie à l'écran. Ne vous inquiétez pas si le numéro n'est pas un, tant que vous avez un numéro là-bas. Si vous obtenez une erreur, assurez-vous que vous exécutez que mon serveur de suite correctement, que vous y avez accès avec l'utilisateur de l'application et le mot de passe ou tout autre problème avec le code lui-même. 65. Vérifier la création d'enregistrements dans la base de données: nous pouvons rapidement vérifier l'enregistrement sur la base de données en utilisant le shell flask. Allez-y et arrêtez le lin. Jamais et taper sur le flasque terminal show. Si vous invitez n'importe où, n' oubliez pas d'avoir votre lampe de veto activée sur le type de coque de l'auteur Doug Models, de l'auteur Import, de l' auteur, auteur, aquarium. Vous devriez voir votre enregistrement nouvellement créé là-bas. Si vous voulez voir tous les champs de l'enregistrement, auteur est-il égal à auteur ? Cette requête que le premier auteur point dick qui est deux souligne le mot poncé, et deux autres soulignements à l'exception de la suite Alchemy, Instant State. Alors que les autres propriétés sont ce que vous avez sur la base de données, nous pouvons également nous connecter à la base de données pour voir l'enregistrement, quitter le shell flask en utilisant exit et maintenant entrer ma suite en utilisant vos informations d'identification comme je les ai décrites précédemment dans la configuration. Maintenant, sélectionnez le flotteur que je base en utilisant Fluckiger montrer les tables en utilisant show tables . Vous verrez leur table de migration, une version lambique et la table auteur. Maintenant, sélectionnez l'étoile de l'auteur. Vous verrez votre dossier complet, vérifiez le champ de mot de passe et l'avis. Ce n'est pas la même chaîne que vous avez utilisée, mais j'ai plutôt longtemps Siris de caractères aléatoires. C' est la sortie de hachage de mot de passe en utilisant exit 66. Utiliser PDB: Si vous êtes sous Windows, Mac ou Lennox, vous pouvez également utiliser une autre méthode pour vérifier si l'enregistrement est stocké dans la base de données ou s'il y a des erreurs. Et c'est en utilisant le debunker python ou PDB. Malheureusement, cela ne fonctionne nulle part sur python car il n'y a pas de terminal flask disponible. Mais restez juste pour que vous voyez comment cela fonctionne. Donc, tout droit sur le mot de passe de hachage viable à la ligne suivante. Importer PDB. Donc mon côlon BDB a dit plateaux. Je sais que c'est bizarre. Écrivez ça quelque part parce que vous l'oublierez encore et encore. Je pense que je m'en souviens après l'avoir utilisé. Pendant cinq ans, Python 37 a introduit la fonction de point de rupture, mais à partir de cette écriture utilisaient Python 3.6. Donc ça ne marchera pas. Alors maintenant, exécutez le serveur de lin et entrez les informations sur le formulaire et appuyez sur le bouton de registre . Vous remarquerez que le navigateur se bloque, mais jetez un oeil au terminal. Vous verrez que vous avez une invite qui est celle par Fundy Bugger. L' invite nous indique où en ligne. 15 de l'auteur du fichier Use. La petite flèche signifie que la commande de mot de passe haché sera exécutée ensuite, mais elle n'a pas été exécutée. Le script est gelé dans le temps, attendant que vous fassiez quelque chose. Nous pouvons voir, par exemple, les valeurs sur le formulaire Instance. Il suffit de taper sur le point de formulaire d'invite Date de nom complet. Vous verrez le nom qu'il vient d'entrer ou le formulaire point envoyé par e-mail ou des données pour voir l'e-mail pour avancer le script. Tapez la lettre n, qui représente la suivante. Maintenant, le script est passé à la ligne 16. Cela signifie que le mot de passe haché est défini, Alors essayez de l'imprimer avec un mot de basse de hachage. Puisque nous entrons dans un bloc avec plusieurs lignes, tapez fin et appuyez sur Entrée. Toute astuce est que PDB se souvient de la dernière commande. Donc, si vous appuyez simplement sur Entrée, il sera comme si vous avez tapé et appuyez donc sur Entrée jusqu'à ce que vous voyez la session D. V à la ligne auteur. Mais arrêtez là. Ok, À ce stade, nous avons créé l'auteur suite Alchemy Objet type auteur pour vérifier. Maintenant tapez author dot i d. Nous n'obtenons rien. Pourquoi c'est ça ? Eh bien, nous n'avons pas fait de commit, donc l'enregistrement n'a pas été lu dans la base de données, donc tapez et à nouveau toe avance toe la ligne de commit et appuyez sur Entrée pour avancer. Une ligne de plus tapez maintenant auteur Thought i d Il devrait maintenant obtenir les enregistrements i d dans la base moins que vous tapez sur e-mail existant et vous obtenez l'erreur suivante. Qu' est-ce que c'est ? Eh bien, vous vous souvenez peut-être que sur le modèle auteur, nous avons ajouté une contrainte unique au champ e-mail, ce qui signifie que vous ne pouvez pas vous inscrire aux auteurs avec le même e-mail. Vérifiera comment corriger ce prochain en utilisant des validateurs de champs de formulaire WTI personnalisés. 67. Valeurs de forme personnalisée: pour reprendre là où on s'était arrêté. Nous avons trouvé un problème potentiel avec la fonction d'enregistrement de l'auteur pour déclencher l'erreur a soulevée aux auteurs avec le même e-mail. La deuxième inscription renvoie une erreur de base de données et nous avons l'obligation de nous assurer que cela est vérifié. Avant de commencer. L' auteur du courrier électronique dupliqué utilisera un validateur de formulaire WT personnalisé. formulaire WTI permet de créer des validateurs personnalisés à l'aide de la méthode validate. Sur ses instances, nous pouvons faire des validations blanches de formulaire, ce qui fera pour le formulaire de journalisation mais pour l'enregistrement fera un validateur spécifique par e-mail ainsi ouvert Le fichier de formulaires d'auteur et à l'intérieur de la classe de formulaire racer a introduit le code suivant. Cette méthode valide uniquement le champ email, donc nous passons e-mail comme le seul paramètre pour cette méthode d'instance. Cet e-mail viable contiendra quelle que soit l'utilisation ou entré dans le champ email hors du formulaire. Nous faisons ensuite une recherche sur la table auteur pour rechercher si un utilisateur est renvoyé avec cet e-mail . S' il y en a un, nous soulevons une erreur de validation avec un message qui communique à la vue que le formulaire n'est pas valide avant de contester cela à la ligne suivante sous les importations système. N' oubliez pas de laisser une ligne vide au-dessus. En outre, nous devons ajouter une erreur de validation à la fin de mentir pour enregistrer le fichier et démarrer votre serveur de lin . Maintenant, essayez d'entrer le même e-mail deux fois. Vous devriez obtenir une erreur bien formatée. 68. La connexion par l'auteur: Maintenant que nous avons un auteur dans la base de données, nous allons créer une fonctionnalité pour les verrouiller dans le système. Commençons par le formulaire d'auteur qui est à un formulaire appellera journal dans le formulaire. C' est assez explicatif. Disposera d'un e-mail et d'un mot de passe requis pour que l'auteur puisse se connecter. Enregistrez le fichier. Ouvrez maintenant le fichier de vue auteur. Et créons une nouvelle route pour la méthode de journalisation. N' oubliez pas ce que le long informer dans la ligne six. Enregistrez ce fichier. Nous allons avoir besoin de créer un fichier HTML de journalisation sur le dossier Author templates avec le code suivant semble assez décent, non ? Nous avons plus ou moins les mêmes champs que nous avions dans la course pour informer modèle, enregistrer le fichier et vérifier en allant à bout l'euro de journalisation. Entrez n'importe quelle combinaison e-mail et mot de passe et appuyez sur le bouton de connexion. Vous devriez recevoir un message indiquant Verrouillé dans 69. Vérifier les identifiants de connexion dans la base de données: Bien sûr, ce n'est pas bon. N' importe qui peut se connecter à l'application, alors vérifions réellement les informations d'identification dans la base de données. abord, allez dans le formulaire auteur et ajoutez le code de validation suivant dans la classe log Inform. Cette validation est différente du validateur d'e-mail de validation personnalisé qui était sur Lee vérifiant l'e-mail. Cette validation est une évaluation de valeur de l'ensemble du formulaire, et c'est pourquoi il n'y a pas de sentiment passé en tant que paramètres. La première chose que nous faisons un validateur global est de vérifier si le formulaire passe la validation normale . Donc, d'abord, nous exécutons la méthode validate, en passant cette instance comme elle-même. Si le formulaire ne passe pas, validation retournera des chutes, ce qui renvoie le contrôle au formulaire avec un état validé. Ensuite, nous avons essayé de trouver un enregistrement d'auteur avec l'e-mail passé dans le formulaire, auquel nous accédons avec des e-mails de doute de soi, les données. Si nous trouvons un auteur, alors nous vérifions si le hachage de mot de passe stocké dans la base de données correspond au hachage de mot de basse passé . Si elles ne correspondent pas, cela signifie que l'utilisateur saisit le mauvais mot de passe et nous ajoutons une erreur au champ mot de passe avec le texte, l' e-mail ou le mot de passe incorrect et le retour tombe, ce qui marque à nouveau le formulaire comme invalidé. Sinon, nous reviendrons. Vrai. La dernière autre passe juste l'air parce qu'il n'y a pas d'auteur avec ce courriel sur le système. Maintenant, ajoutez l'importation de hachage de mot de passe de vérification en ligne pour enregistré un fichier avec votre serveur flasque en cours d' exécution essayé de connexion avec le mauvais mot de passe ou avec un e-mail qui n'existe pas, vous devriez obtenir le message aérien sous le champ mot de passe. Essayez maintenant de vous connecter avec un e-mail et un mot de passe que vous avez réellement stockés. Si tu n'en as pas, tu te souviens. Créez un nouveau sur le registre. Euro. Vous devriez obtenir le message de connexion. 70. Session d'auteur: Lorsque vous vous connectez à un site Web ou une application, vous devez définir une sorte de cookie de sorte que les autres pages que l'utilisateur connecté charge ont reçu les informations de l'utilisateur et l'empêcher de voir des pages qu'il n'est pas censé faire, ainsi que de garder utilisateurs déverrouillés. Le moyen le plus sûr de le faire est d'utiliser une fiole. Les sessions redirigent également l'utilisateur vers la page d'accueil du bloc lorsqu'il se connecte. Donc en ligne, une à la session de redirection et euro quatre bibliothèques complètent l'importation du flacon suivant au code suivant sur la section validation de la journalisation sur soumission. Donc, ici, nous cherchons l'auteur et stockons deux sessions différentes. L' utilisateur I d. Sous le nom complet. Enfin, nous étions directement utilisateur à la page d'accueil des blocs. Avis. Nous ne vérifions pas le mot de passe ici parce que cela est déjà fait par la fonction de validation de formulaire que nous avons écrite plus tôt. Enregistrez le fichier et la journalisation. À l'aide d'un e-mail et d'un mot de passe valides, vous devez être redirigé vers la page d'accueil des blocs. Alors, comment pouvons-nous vérifier si la session a été stockée ? Faisons une vérification rapide sur la page d'accueil de la session. Ouvrez les vues de bloc et sur la méthode d'index. Procédez comme suit lors de la session, remplissez le flacon, importez un en ligne, puis enregistrez le fichier. Maintenant, si vous rechargez la page d'accueil et que vous êtes connecté, vous verrez les utilisateurs verrouillés dans le nom. Il y a une autre façon de vérifier si une séance, dit-il. La plupart des navigateurs modernes disposent d'une console JavaScript où vous pouvez voir les cookies qui ont été stockés par un site. Par exemple, sur Google Chrome Goto, afficher le développeur, console Jaster et dans l'application, recherchez les cookies et sélectionnez l'hôte local 5000. Vous devriez voir une chaîne de session là-dedans. 71. Connecter l'auteur: si nous avons une méthode de journalisation, nous devrions certainement avoir une méthode de lager aussi. C' est assez simple. Nous avons juste besoin de supprimer la cuisine de session. Alors dirigez-vous vers l'auteur de You File et ajoutez ce qui suit La méthode pop supprime de l'objet session les éléments I D et le nom complet. Après cela, nous redirigeons l'utilisateur vers la page de connexion, enregistrez le fichier et maintenant appuyez sur le bas guttural. Vous devriez être redirigé à la page de connexion. Si vous revenez maintenant à l'euro maison, vous devriez voir la chaîne d'accueil Blawg sur l'utilisateur à ce stade a été verrouillé. 72. Messages Flash: la dernière chose à faire dans cette leçon sera d'améliorer la communication avec l'utilisateur et de l' avertir que les actions qu'il a prises ont été menées avec succès et pour cela utilisera des flacons. Messages flash. Les messages Flash sont un type spécial de notification qui permet à l'utilisateur de les consommer , puis ils disparaissent automatiquement. Voyons les en action. abord, va créer un message d'affichage de l'orteil macro dans un joli wrapper. Alors allez-y et créez un fichier dans le dossier de modèle racine appelé On the Score. Messages flash html Avec le contenu suivant, la macro traverse essentiellement tous les messages flash que nous recevons du bâtiment. Obtenir la fonction de messages clignotés que flask offre remarquer l'instruction avec en haut. C' est essentiellement un bloc qui se termine par la fin avec, et il rend les messages viables disponibles au sein du bloc. Donc, s'il y a des messages flash, nous allons orteil une boucle quatre et afficher les messages avec un peu off. Bootstrap vous. J' aide à sauvegarder le fichier. Et maintenant, incluons la macro dans le modèle HTML de journalisation de l'auteur à la ligne 11. Enregistrez le fichier et ouvrez maintenant le fichier Views de l'auteur. Remplacer le mensonge 22 par ce qui suit aux lignes, puis ajouter sous. Déconnectez-vous ce qui suit. N' oubliez pas d'ajouter flash à la fin de l'importation en ligne. Un. Enregistrement d'un fichier et création d'un nouvel auteur. Lorsque vous appuyez sur Enregistrer, le message flash ci-dessus s'affiche maintenant verrouillé, puis appuyez sur la route de déconnexion. Vous verrez l'autre utilisateur de message flash déconnecté. 73. Tester l'application d'auteur: Nous avons fait un peu hors de l'application auteur, et nous ne voulons pas continuer à construire notre application avant de tester pour cette pièce . Toujours construire des fonctionnalités avec leurs tests correspondants et vous serez aimé par vos bus sur votre froid. Les développeurs vont d'abord créer argumenter dossier tills avec le test d'utilité que nous avons utilisé dans l' application de compteur. suffit de copier et de le coller à partir de là ou de ma porte Hope repose. Assurez-vous d'ajouter un fichier P Y à l'intérieur afin que notre module DB de test puisse être importé à partir d'autres fichiers. Ensuite, nous allons configurer notre fichier de test de découverte de commande à la racine de l'APP. Enregistrez le fichier. Maintenant, commençons à construire le fichier de tests d'auteur, créez des tests de points d'auteur et mettez le code standard suivant. Ce code devrait vous être familier à partir de l'application de compteur. Il met en place les différentes configurations d'importation nécessaires. Dot m crée la classe de test de l'auteur principal avec une méthode de création d'application pour créer notre application de test. Une configuration qui les leviers sont testés être bibliothèque et une déchirure vers le bas pour tout arrêter. Commençons à ajouter quelques tests, mais d'abord ajoutera une méthode personnalisée pour créer rapidement un dictionnaire utilisateur, car nous en aurons besoin beaucoup pour les tests. Donc, notre premier cas de test sera l'enregistrement des utilisateurs. Donc, nous commençons par ce qui suit ce premier cas va enregistrer notre utilisateur John Smith, et ensuite nous allons vérifier que la chaîne que vous êtes maintenant inscrit est dans les résultats. Nous devons suivre l'indicateur de redirections ici car la méthode de registre redirigera vers la page d'ouverture de session où la chaîne réelle est imprimée comme un message flash. Si nous n'avions pas de directives de suivi, le test resterait sur la page de registre sans moyen de vérifier si la chaîne est présente sur la sortie, juste pour s'assurer que nous sommes sur le bon chemin, Safe to file and the terminal, géré par le plaisir. Testez que B Y. Assurez-vous que votre ampli virtuel est activé. Super. Notre premier test est passé. Si un enregistrement d'auteur a été créé, nous devrions pouvoir le vérifier dans la base de données. Comment on fait ça ? Dans ce cas, nous devons mettre en place un contexte parce que c'est quelque chose que nous ferions normalement. Nous pensons à vous hors de l'application donc nous faisons ce qui suit ici. Nous créons un contexte de l'application que nous appelons C Hit la page d'accueil et vérifions si la table auteur a un utilisateur. Cet utilisateur est celui créé lors du test enregistré précédent. Rappelez-vous que tous les tests au sein d'une fonction ou d'un cas de test conservent les données sur la base de données. Lorsque nous commençons un nouveau cas de test, toutes les données sont une course et nous partons de zéro. Pourquoi avons-nous besoin d'obtenir la page d'accueil ? Techniquement, nous pourrions frapper n'importe quelle page, mais grâce à cet appel, nous avons pu démarrer l'orteil contextuel. Permettez-nous de faire que je base opération exécuter le test, et nous devrions tous être bons. Faisons deux tests supplémentaires pour le cas de test enregistré, un qui essaie de lui élever un autre utilisateur avec le même e-mail sur le second qui essaie de s'enregistrer avec des mots de passe mal correspondants. Remarquez comment dans le deuxième test, nous modifions simplement l'e-mail et les champs confirmés de l'objet dicked par l'utilisateur. Cela vous permet d'écrire des tests vraiment concis, enregistrer le fichier et d'exécuter les tests 74. Tests de connexion: Maintenant, nous allons écrire quelques tests pour la fonctionnalité de journalisation va créer un tout nouveau cas de test afin que la base de données soit claire. Commençons par ce qui suit. Assurez-vous d'inventer cela au même niveau que le test que vous enregistrez la fonction. Donc, la première ligne dans le cas de test crée l'utilisateur avec un utilisateur pointé. Ensuite, nous créons un contexte parce que nous allons tester. Si je session utilisateur était dit, quelque chose que nous ne pourrions pas faire sans contexte. Next testera la fonctionnalité de surveillance. Encore une fois, nous avons besoin d'un contexte parce que nous testons une session, pas la sortie sur la page. Donc, si la session n'est pas, cela signifie que l'utilisateur s'est déconnecté. Nous finirons par deux simples se connectant avec le mauvais mot de passe et avec un email inexistant le 1er 1, nous créons un nouvel utilisateur et écrasons le mot de passe orteil un incorrect. Et puis le 2ème 1, nous venons de passer un email qui n'a pas été créé. Enregistrez le fichier et exécutez les tests. Ça fait du bien d'avoir tout notre courant à bien testé, n'est-ce pas ? Maintenant, il est temps de commencer à travailler sur le bloc, en postant pour que notre auteur puisse publier quelques entrées 75. La barre de Nav: avant de commencer à travailler sur la fonction d'affichage en bloc, nous allons créer une barre de navigation afin que les utilisateurs puissent facilement accéder aux différentes zones l'application et se connecter ou se déconnecter, créer un fichier appelé ALENA html sur la brute tempérée et au code suivant. Nous utilisons du code bootstrap. Mais notez que si les instructions où nous vérifions si la session est définie, si elle est, nous affichons l'utilisation de la même et la déconnexion comme autrement, nous affichons un lien de journalisation. Enregistrez le fichier. Nous devons maintenant ajouter la barre de sieste aux modèles existants. Donc ouvert le modèle de journalisation et dans la ligne cinq, insérez la ligne suivante. Enregistrez le fichier et ouvrez maintenant le modèle de registre et faites la même chose sur la même ligne. Cinq. Safety et redémarrez le serveur de linx. Allez à la page de connexion et vous remarquerez la nouvelle barre assez en haut. Maintenant que vous vous connectez avec un identifiant d'auteur valide, vous serez redirigé vers la page d'accueil, mais ce n'est pas un modèle approprié, donc nous ne verrons pas la barre de sieste. À la place. manuellement Revenezmanuellementà la page de connexion. Vous verrez maintenant le nouvel état verrouillé dans la barre de nuff avec le nom de l'auteur et un lien de déconnexion . Cliquez sur le lien de déconnexion et vous devriez revenir à l'état regardé, et avec cela, nous sommes maintenant prêts à commencer à travailler sur la publication blawg à 76. Le modèle de blog et les modèles de catégorie: la première chose à faire dans notre fosse de sang est de créer un modèle temporaire d'index de bloc. Et même s'il ne rendra aucun poste, au moins il aura une bonne structure et une barre naff. Créez donc le dossier Bloquer dans le dossier Modèles à l'intérieur. Insérer ce qui suit sur un nouvel index, ext. Fichier e-mail. Enregistrez le fichier et maintenant remplacé la fonction d'index sur le bloc Abus Toe Ce qui suit N'oubliez pas d'ajouter le modèle de rendu dans les importations sur la ligne un. Enregistrez le fichier et maintenant allez maintenant la page d'index aujourd'hui pour le vérifier. Maintenant, nous allons créer notre modèle de bloc aura une classe de poste où un post de bloc sera stocké, et nous allons également vouloir organiser les messages par catégorie, donc nous allons créer une classe de catégorie. Commençons donc par créer les modèles de blocs. Fichier Python À l'intérieur de l'espace de soufflage Nous devrons importer l'instance Alchemy suite B R à partir du fichier d'application ainsi que la bibliothèque de jour pour l'état Off the Post publié. Maintenant, nous allons créer la section de classe post. Je l'écrirai et je vous expliquerai ce qu'on fait ici. Donc, ici, nous avons le i D. Pour l'enregistrement le titre et le corps du Block Post, un état publié et un drapeau de vie, qui utilisera pour marquer quels messages sont vus sur le bloc. Lorsque nous faisons la fonction de suppression sera de définir cette vie. Flag Toe Falls que slug est que vous êtes une chaîne conviviale pour les pages d'article, qui va générer avec le slog. Si je bibliothèque de cette façon, chaque post aura une belle peinture murale qui nous aidera avec la visibilité des moteurs de recherche ainsi . Maintenant, jetez un oeil à la catégorie I. D. Il est un champ entier et référence une clé étrangère hors calories point i d ah, clé étrangère est un moyen de connecter un enregistrement sur un orteil de table, un autre dans une autre table. Et ce que nous faisons vraiment la base de données, c'est que nous avons stocké l'I D sur un enregistrement dans la table externe dans l'enregistrement de table interne , par exemple, disons que nous avons un titre de poste. Mets remportent la World Series avec un i D off 15 dans le tableau des postes. Maintenant sur la table des catégories, nous avons différentes catégories sportives comme le football, le hockey et le baseball. Disons que la catégorie de baseball I d est trois. Nous attribuerons ensuite la catégorie de baseball à la catégorie de baseball en ajoutant le numéro trois dans la catégorie I. D. Terrain. De même, nous avons l'auteur I d. clé étrangère orteil la table de l'auteur existante pour être en mesure de savoir quel auteur a écrit ce post. Alors, comment fonctionne Sequelae Camino avec Table pour lier cet auteur i d aux références de paramètres de clé étrangère est le nom de la table. Si vous vérifiez la table créée par la classe auteur, vous verrez qu'elle s'appelle Author en minuscules et non auteur en majuscules. Vous verrez cela plus clairement lorsque nous commencerons à insérer des enregistrements sous blogué Post stable. Ensuite, créons la méthode Enid, qui est appelée lorsque nous créons l'enregistrement, Faites ce qui suit Ici, nous avons dit que les champs pour l'enregistrement post certaines choses que je veux que vous remarquiez d'abord, puisque nous serons passant un objet auteur et non un auteur, i d integer toe le post. Nous avons toujours besoin d'enregistrer l'entier pour l'auteur du post Foreign Key. Donc, nous avons extrait de l'objet auteur transmis sur le périmètre. Maintenant, si vous voyez le paramètre de catégorie remarqué, ce sera également un objet. Mais cette fois-ci, c'est facultatif puisque nous n'en avons pas par défaut. Donc, nous vérifions d'abord s'il est passé et ensuite assigné les objets I d toe la catégorie i d. Enfin, si publié, l'état n'est pas passé. Puis nous l'avons dit à l'heure actuelle. Notez que j'ai utilisé une fonction UTC maintenant. Il s'agit du temps universel coordonné à zéro degré de longitude, et il n'est affecté par aucune heure d'été. Pourquoi ne pas utiliser l'heure locale où nous vivons ou l'heure locale de l'utilisateur ? Parce que d'autres utilisateurs regardant le bloc peuvent vivre dans un fuseau horaire différent. Et il est beaucoup plus facile de calculer la différence de temps entre UTC sur l'utilisateur regardant le post. Donc, toujours utilisé UTC sur tout ce qui stocke la date et l'heure dans vos modèles. Nous avons presque terminé, mais il y a une autre fonctionnalité utilisera dans le modèle. C' est ce qu'on appelle une méthode de relation, donc avant de taper ce qui suit nous permet d'avoir l'auteur réel ou l' objet de catégorie attaché à l'enregistrement. Au lieu de faire une autre requête de base de données. Lorsque nous voulons récupérer cette information,par exemple, par exemple, disons que nous voulons afficher le nom de l'auteur sur la nourriture er sur la page de publication spécifique. Puisque nous stockons seulement l'idée de l'auteur sur le post record, nous devrions faire une autre interview de requête pour l'obtenir avant de rendre la page avec la relation alchimiste suite . Nous avons déjà un post cet objet auteur que nous pouvons parcourir, donc pour imprimer le nom de l'auteur des messages, nous ferions poster cet auteur ce nom complet. Alors, comment fonctionne la relation dans ce cas ? Vous avez passé la classe réelle, pas le nom de la table. abord, nous n'avons pas défini à quoi ressemble la référence descendante ou arrière à droite, ce qui nous permet de parcourir de l'autre table vers les posts. C' est comme tuer deux oiseaux avec une pierre. Maintenant, sur l'auteur et les objets de catégorie auront une propriété de poste, ce qui nous permet d'obtenir tout le post et l'auteur a écrit ou plus. Publier une catégorie contient. Donc, si, par exemple, nous sommes sur la page détaillée de l'auteur sans aucune requête supplémentaire, nous pouvons faire auteur que les messages et qui aurait une liste de tous les messages. Par cette offre. Ce type de relation de base de données est appelé un trop, car un auteur peut avoir beaucoup de messages et une catégorie peut avoir beaucoup de messages, cependant, a remarqué qu'un post ne peut pas avoir beaucoup d'auteurs, au moins dans ce modèle avec créé. Donc il y a toujours une direction dans la relation un à plusieurs. Nous verrons la relation beaucoup à plusieurs plus tard, lorsque nous créons la fonctionnalité de balises. Chaque fois que vous créez un modèle et que vous ne savez pas où placer leurs définitions de relation , il est utile de se rappeler quelle table est le côté plusieurs et de placer les définitions de relation ce côté. Enfin, nous passons comment charger la liste des objets liés en déclarant un type dynamique hors chargement Lacey . Je sais que cela semble un peu drôle, mais pensez à cela comme à quel point vous êtes impatient d'avoir les objets associés chargés en mémoire puisque nous pensons que nous n'allons pas avoir besoin de tous les objets associés chargés chaque fois que nous utilisons Dynamic, ce qui renvoie juste l'objet parent et Onley charge les objets associés. Si nous le demandons, exemple, par exemple,en publiant à cet auteur ce nom complet, cela permet de gagner du temps pour afficher les données à l'écran. Ne vous inquiétez pas trop à ce sujet pour l'instant. Lorsque vous êtes prêt, vous pouvez en apprendre davantage sur d'autres types de chargement de Lacey. Finissons les modèles de bloc en créant le modèle de catégorie. C' est assez simple. Nous allons juste à l'amende et moi et le nom et c'est tout. Enfin, ajoutons une méthode de reproduction pour les deux classes afin que nous puissions afficher les instances correctement sur le shell pour la classe post fera et pour la classe de catégorie enregistrera le fichier et se déplacera à côté du formulaire de post de bloc définition. 77. Le formulaire de publication de blog: nous sommes maintenant prêts à commencer notre formulaire de publication. Rendons la classe principale et nous allons revoir les nouvelles choses. Nous avons un titre, qui est un Stringfield, qui est requis et a une longueur maximale. Nous avons ensuite un corps, qui définira comme un champ de texte decks. Les champs sont ceux que vous voyez sur les formulaires de messagerie qui ont plusieurs lignes. Ensuite, nous devons aborder les catégories, donc nous devrons les champs pour cela. D' abord, nous allons avoir une liste déroulante, ce que nous faisons. En utilisant le champ de sélection de requête ici nous défier une usine de requête, qui est une fonction étaient juste bientôt qui saisit les différentes options de la base de données permettra le champ de sélection Toby Blank. Si l'utilisateur veut créer une nouvelle catégorie, alors nous appelons Days nouveau champ de catégorie et bien défini comme une chaîne non obligatoire. Donc, ci-dessus, cela va définir les catégories Fonction d'usine de requête Puisque nous avons besoin qu'il soit défini avant qu'il soit appelé dans la classe de formulaire post, c'était assez facile. Renvoyaient juste une requête de catégorie de rôle. Vous pouvez faire des requêtes fantaisistes comme le filtrage ou la commande des données, mais nous partirons. Ce US est maintenant Ajoutons les importations et nous avons terminé. Enregistrez le fichier et nous commencerons à travailler sur notre post de bloc. Créez ensuite un modèle. 78. Modèle de publication et vue de blog créer.: nous allons maintenant développer le modèle qui nous permettra de publier un nouveau post de bloc, alors créez un nouveau fichier appelé Post Op X TML dans le dossier Templates Block, puis écrivez-le dedans . C' est assez simple, et rien que vous n'avez pas vu avant sera poster toe l'interview méthode post avec la catégorie corps titre. Sélectionnez dans le champ pour entrer une nouvelle catégorie, Enregistrer le fichier et maintenant ouvrons le bloc pour vous. Fichier et entrez le code suivant. Nous voulons nous assurer que la forme qu'il est rendu comme prévu pour l'instant sur le dessus. Faisons l'importation suivante. Enregistrez le fichier avant de l'essayer. Nous devons effectuer la migration de la base de données puisque nous avons ajouté les nouveaux modèles de blocs. Donc pour flasque ils soient mes grands, vous devriez voir la migration s'exécuter. Si vous obtenez des erreurs, vérifiez deux fois le fichier du modèle. Cette opération a généré le fichier de version de migration. Il est toujours bon de le vérifier avant de faire les changements réels. Voici à quoi ressemble la mienne ici. Nous voyons que nous recréons Tune votre catégorie de tables et publions un avis à la fin de la publication. Configurez comment nous définissons les clés étrangères orteil auteur dans la catégorie. Si vous voyez des erreurs, vous pouvez supprimer ce fichier, résoudre tous les problèmes sur le modèle, et nous exécutons le flacon. Commande Migration Db. N' oubliez pas qu'à l'heure actuelle, aucune modification n'a été apportée à la base de données. Alors faisons la mise à niveau réelle en faisant flasque, ils seront mis à niveau. Super. Maintenant, on est sur le serveur plat et on va poster. Vous devriez voir le rendu de votre formulaire de publication. À ce stade, si vous appuyez sur Soumettre, rien ne se passera. C' est maintenant exact, la base de données en cours de traitement du formulaire. 79. Traitement de base de données Publiez un blog Publier avec des données: nous allons maintenant prendre les auteurs, bloquer les données de publication et les enregistrer dans la base de données. La première chose que nous devons comprendre est la pièce de catégorie. agit-il d'une nouvelle catégorie que l'auteur saisit ou en sélectionne-t-il une dans la liste déroulante ? Stockons ceci de toute façon dans un testament viable appelé catégorie, donc entrez ce qui suit sous la validation sur Soumettre. Tout d'abord, nous vérifions si le nouveau champ de catégorie est resté dessus. Si c'est le cas, va créer une nouvelle suite de catégorie. Alchemy l'a augmenté avec le nom dessus et ajouté à une session. Maintenant, on a besoin de cette sécurité dans la base de données parce qu'on a besoin de l'I d pour le modèle Post, tu te souviens ? Alors comment on fait ça ? Il existe une méthode spéciale dans l'alchimie de suite appelée Flush, qui ne sauve pas les données sur le disque, mais fait une sorte de pré-safe, qui génère le potentiel I D mais garde toujours la décision ouverte pour d'autres droits ou mises à jour . Donc, une fois que nous faisons la chasse d'eau, nous obtenons la bonne catégorie D et l'assignons à notre catégorie viable. Si le nouveau champ de catégorie n'est pas défini, nous avons attribué la catégorie toe. Quels que soient les auteurs élus dans la liste déroulante suivante écriront les informations réelles qui sont basées sur Operation Notice. Sur la première ligne, nous obtenons l'objet auteur en cherchant l'auteur par l'utilisateur de session verrouillé i d. Ceci, bien sûr, suppose qu'il y a un auteur connecté. Ensuite, nous obtenons le titre sur le corps, en appliquant une opération de bande Python aux deux afin que nous sortions toute procédure ou espace postérieur . Ensuite, nous créons la suite post Alchemy Object