Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (4) [Route setting / Introduction to MTV design patterns]

Composition d'articles de commentaires

No. Titre
1 Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (1) [Construction de l'environnement]
2 Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (2) [Création de projet]
3 Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (3) [Création d'application / configuration de la base de données]
4 Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (4) [Route setting / Introduction to MTV design patterns]
5 Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (5) [Introduction au fonctionnement de la base de données avec le shell Django]
6 Explication facile à comprendre de l'application Web Python (Django), même pour les débutants (6) [MTV design pattern completion]

Environnement de développement

Nous allons poursuivre la discussion en supposant un environnement Mac.

Vérifiez la version Python comme suit.

$ python3 --version
Python 3.5.2

Créer une page Web

Paramètres de routage

mysite/urls.Écran de gestion avec py(admin)Et définissez le routage (URL) du blog.




#### **`mysite/urls.py`**
```py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('blog.urls')),
]

adminEn ce qui concerne, l'administrateur de django le définit automatiquement, mais comme je n'ai encore rien créé sur le blog, je vais le définir.

blog/urls.Créez un fichier vide appelé py et modifiez-le comme suit.




#### **`blog/urls.py`**
```py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.post_list),
]

Pour les urlpatterns,[Django Girls Tutorial](https://djangogirlsjapan.gitbooks.io/workshop_tutorialjp/content/django_urls/)Plus d'extraits.



 > Cela signifie que vous avez attribué une URL avec le modèle ^ $ à une vue appelée post_list.
 Que signifie ^ $?
 C'est la magie des expressions régulières :) Décomposons-le:
>
 * Dans l'expression régulière, ^ signifie "début de chaîne". Commencez la correspondance de motifs à partir d'ici.
 * $ Signifie "fin de chaîne" et termine la correspondance de motif ici.
>
 Oui, une chaîne vide correspond au modèle de ces deux symboles côte à côte. Cependant, la résolution du nom d'URL de Django correspond au modèle sauf pour «http: //127.0.0.1: 8000 /», donc ce modèle signifie «http: //127.0.0.1: 8000 /» lui-même. Je vais. En d'autres termes, il spécifie que «views.post_list» doit être retourné aux utilisateurs qui accèdent à l'URL «http: //127.0.0.1: 8000 /».

 En bref, il est actuellement déclaré que ```urlpattern``` assigne `` `` post_list``` à une URL (répertoire racine) sans chaîne de caractères.
```post_list```Je n'ai pas encore créé la vue, donc bien sûr je ne peux pas y accéder.

# Modèle de conception Django

 Ensuite, nous allons créer un écran d'affichage correspondant à l'URL définie, mais nous devons d'abord savoir comment sont gérés l'écran et la base de données affichés dans Django.

 Avant de parler de Django, jetons un coup d'œil à MVC, un modèle de conception typique.
 Si vous comprenez MVC, il sera plus polyvalent à l'avenir et vous pourrez facilement comprendre le modèle de conception MTV adopté par Django.

## Modèle de conception MVC utilisé dans Ruby on Rails, etc.

 Dans les applications Web, il est souvent géré comme un modèle de conception MVC.
 MVC est une abréviation de Model View Controller, et chaque rôle est le suivant.
 Ruby on Rails n'est-il pas un exemple classique de ce modèle de conception MVC?

 ![](https://blog.chattyhive.com/wp-content/uploads/2014/01/mvc_detailed-full.png)

 L'image est que le contrôleur agit en tant qu'intermédiaire sur la base des informations auxquelles l'utilisateur accède, extrait les informations nécessaires du modèle et de la vue et les renvoie ensemble à l'utilisateur.
 En gros, View est HTML, Model est DB et Controller est l'administrateur.
 Un tel modèle de conception MVC classique est très facile à comprendre et à gérer une fois que vous vous y êtes habitué.

## Django est un modèle de conception MTV

 Il semble que Django gère avec un modèle de conception appelé modèle de conception MTV au lieu de MVC.
 * Cette zone ressemble-t-elle à un conflit religieux?

 MTV est une abréviation de Model Template View.

 ![](http://blog.easylearning.guru/wordpress/wp-content/uploads/2015/08/MVC-Vs-MTV-300x178.png)

 Je pense qu'il y a plusieurs raisons, mais je pense personnellement que le modèle de conception MVC est bien.
 Fondamentalement, il semble y avoir une correspondance un à un entre MVC et MTV, alors assurez-vous de convertir MVC en MTV dans votre esprit.

## Article de référence MTV
 * [J'ai essayé Python + Django. À propos du modèle MTV](http://mimumimu.net/blog/2011/11/21/python-django-%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F% E3% 80% Modèle 82-mtv-% E3% 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6 /)
* [Implementing MTV model in Python Django](https://www.google.co.jp/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&ved=0ahUKEwiQ--nhgaDQAhVLfLwKHW23BWEQjhwIBQ&url=http%3A%2F%2Fblog.easylearning.guru%2Fimplementing-mtv-model-in-python-django%2F&psig=AFQjCNFX3N_Iwfe29CaOZ8djG0oa6V4_2A&ust=1478929512330040)


# Paramètres d'affichage

 La vue contrôle la partie telle que le modèle lu à partir de l'URL définie et le type d'informations transmises au modèle.
 * Dans les modèles de conception MVC tels que Ruby on Rails, il s'agit de la partie appelée Controller.


#### **`blog/views.Je vais faire py.`**
```Je vais faire py.



#### **`blog/views.py`**
```py

from django.shortcuts import render

# Create your views here.
def post_list(request):
    return render(request, 'blog/post_list.html', {})

Étant donné que l'URL précédente a été définie pour accéder à la méthode post_list '', définissez def post_list '' et prenez request '' comme argument. Je suis.

Dans la méthode de rendu, blog/post_list.Le contenu de la requête reçue en argument est sorti à l'aide d'un fichier modèle appelé html.


 Il est facile de gérer si le nom de la méthode et le nom du fichier modèle correspondent.
 * Ruby on Rails suppose fondamentalement que le nom de la méthode et le nom du fichier modèle correspondent, et ne prend pas la peine d'écrire `` `` render```.

# Créer un modèle

 Créons maintenant un fichier modèle.
 Commencez par créer un répertoire pour Template.

```bash
$ mkdir blog/templates
$ mkdir blog/templates/blog

En cela, créez post_list.html```.

blog/templates/blog/post_list.html


<html>
    <p>Hi there!</p>
    <p>It works!</p>
</html>

Après avoir enregistré ceci, si vous accédez à http://127.0.0.1:8000/, le modèle sera chargé et fonctionnera comme suit.

スクリーンショット 2016-11-11 3.35.33.png

Quant à la façon d'écrire du HTML, il existe de nombreuses autres références, je vais donc laisser l'explication ici.

Vous pouvez maintenant afficher la page Web du modèle d'origine avec l'URL.

Article de commentaire suivant

Explication de l'application Web Python (Django) d'une manière facile à comprendre même pour les débutants (5) [Introduction au fonctionnement de la base de données avec le shell Django]

Les références

prime

Nous vous attendons pour nous suivre!

Présentation du service N'hésitez pas à nous contacter si vous êtes intéressé par "Kikagaku", un service de tutorat individuel pour l'apprentissage automatique qui vous permet d'apprendre "mathématiques → programmation → applications Web" en une seule fois.

Recommended Posts

Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (4) [Route setting / Introduction to MTV design patterns]
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (5) [Introduction au fonctionnement de la base de données avec le shell Django]
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (2) [Création de projet]
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (1) [Construction de l'environnement]
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (3) [Création d'application / configuration de la base de données]
[Python] Conception d'applications Web pour l'apprentissage automatique
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
[Introduction à Udemy Python3 + Application] 26. Copie du dictionnaire
[Introduction à l'application Udemy Python3 +] 43. instruction for else
(Python) Essayez de développer une application Web en utilisant Django
[Introduction à Udemy Python3 + Application] 53. Dictionnaire des arguments de mots-clés
[Introduction à Udemy Python3 + Application] 52. Tapple d'arguments positionnels
Explication sur l'erreur NoReverseMatch dans "python django super introduction"
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
■ Kaggle Practice pour les débutants - Introduction de Python - par Google Colaboratory
[Explication pour les débutants] Introduction au traitement du pliage (expliqué dans TensorFlow)
[Python] Introduction à la création de graphiques à l'aide de données de virus corona [Pour les débutants]
Introduction à Python Django (2) Win
Modèles de conception en Python: introduction
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Introduction à Python pour, pendant
Résumé du chapitre 2 de l'introduction aux modèles de conception appris en langage Java
Chapitre 4 Résumé de l'introduction aux modèles de conception appris en langage Java
Résumé du chapitre 3 de l'introduction aux modèles de conception appris en langage Java
[Introduction à Udemy Python3 + Application] 69. Importation du chemin absolu et du chemin relatif
[Introduction à l'application Udemy Python3 +] 12. Indexation et découpage des chaînes de caractères
Technique Python pour ceux qui veulent se débarrasser des débutants
Django super introduction par les débutants Python! Partie 2 J'ai essayé d'utiliser les fonctions pratiques du modèle
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
[Présentation de l'application Udemy Python3 +] 57. Décorateur
[Présentation de l'application Udemy Python3 +] 59. Générateur
Web scraping pour les débutants en Python (1)
[Introduction à l'application Udemy Python3 +] Résumé
Web scraping pour les débutants en Python (4) -1
Premiers pas avec Python pour les non-ingénieurs
Introduction à Python Django (2) Édition Mac
[Introduction à Udemy Python3 + Application] 47. Traitez le dictionnaire avec une instruction for
[Pour les débutants] Super introduction aux réseaux de neurones que même les chats peuvent comprendre
Prenons la version gratuite "Introduction à Python pour l'apprentissage automatique" en ligne jusqu'au 27/04
Les débutants en Python publient des applications Web à l'aide de l'apprentissage automatique [Partie 2] Introduction à Python explosif !!
[Introduction à Python] Une explication approfondie des types de chaînes de caractères utilisés dans Python!
Une introduction aux applications Web Python auto-conçues pour un ingénieur Web de troisième année paresseux
Explication de la création d'une application pour afficher des images et dessiner avec Python
Introduction à la base de données Graph Neo4j en Python pour les débutants (pour Mac OS X)
Django super introduction par les débutants Python! Partie 5 J'ai créé une application de journal super simple avec une vue générale basée sur la classe