J'ai donc décidé d'étudier Django en Python. Django semble être un framework Web Python. Qu'est-ce qu'un cadre? Cela semble être le cas, mais le site officiel indique que "Django facilite la création de meilleures applications Web plus rapidement et avec moins de code". Il semble que Youtube, Dropbox et instagram soient également réalisés avec Django dans des endroits célèbres. Sensationnel ...
Note) Cet article est "J'ai essayé le tutoriel du projet officiel de Django".
Tout d'abord, de la construction de l'environnement au lapin et au coin
Si vous supprimez ces trois points, je pense que vous pouvez démarrer Django. Dans mon cas sur Windows 10 1909
Je l'ai préparé. Vous trouverez ci-dessous les liens auxquels j'ai fait référence lors de la configuration.
<détails>
Après avoir installé Django, j'ai construit un environnement virtuel. Comme vous pouvez le voir, le pas est assez lent. S'il vous plaît, pardonnez-moi.
Généralement, il y a beaucoup d'articles sur pyenv
ou venv
dans la construction d'un environnement virtuel, donc quand je le fais avec ʻAnaconda cette fois Il a été construit avec un peu de confusion. Puisque l'interface graphique de ʻAnaconda
est assez facile à comprendre, il est possible de construire un environnement virtuel sans taper de commandes honnêtes.
Il peut donc être facile pour les débutants de s'entendre.
Ce qui suit est l'écran de configuration du navigateur ʻAnaconda`.
Créer un nouvel environnement Le nom doit être facile à comprendre et vous pouvez décider librement. (Je l'ai nommé Django, mais il y a peut-être un conflit d'espace de noms)
Une fois l'environnement virtuel créé, démarrez l'environnement virtuel à partir de ʻAnaconda`Prompt, entrez dans le répertoire de travail et créez un projet.
cmd
(base)C:\User>conda activate Django
(Django)C:\User>django-admin startproject mysite
Cela créera un répertoire mysite
dans lequel le projet et le code de type kit de démarrage seront créés automatiquement.
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
Puisque le tutoriel a exactement la même explication, je vais l'omettre en détail, mais le mouvement de base est contrôlé par manage.py
et ʻurls.py` est responsable du routage dans le site.
Article détaillé ⇒ Explication du mécanisme de code pour django-django (framework) d'une manière facile à comprendre [Bien mâcher]
Tout d'abord, exécutons le serveur Web!
cmd
(Django)C:\User\mysite>python manage.py runserver
Vous avez configuré avec succès un serveur. Comme ceux qui le comprendront le comprendront, celui mis en place ici est un serveur de développement pour une utilisation dite d'essai. En fait, il est opéré en insérant ʻApache` etc.
Vérifions donc le serveur de développement que nous avons mis en place. Si vous entrez 127.0.0.1:8000 dans le navigateur Ce n'est pas grave si vous voyez un écran avec une fusée comme celle-ci voler. 127.0.0.1:8000 représente votre propre port 8000 car 127.0.0.1 est l'adresse de bouclage, et cette page montre que django fonctionne sur le port 8000 de votre ordinateur. Je vais.
Dans le didacticiel, nous allons commencer à créer une application de vote ici. Tout d'abord, créez un modèle pour l'application.
cmd
(Django)C:\User\mysite>python startapp polls
Cela créera un répertoire nommé polls, qui contient déjà les scripts de base pour la construction de votre application.
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Ce script, views.py
, contrôle l'apparence de la page.
Maintenant, jouons un peu avec ce views.py
pour changer l'apparence.
À partir de là, nous éditerons à l'aide de vscode.
Dans vscode, la localisation japonaise et l'extension Python sont incluses dans le plug-in, et Pylance que j'ai présenté car il en a été récemment question.
Lorsque vous ouvrez l'écran vscode, cela ressemble à ceci.
Ajoutez le script suivant à views.py
.
from django.http import HttpResponse
def index(request):
#Je mets les mots appropriés
return HttpResponse("salut!")
Le contenu de HttpResponse
de return
est différent du tutoriel, mais comme il s'agit d'un message d'affichage, je mets ce que je veux.
Ensuite, définissez le routage dans ʻurls.py` pour afficher cette fonction.
dans le répertoire polls. Sachez qu'il y a aussi ʻurls.py
dans la hiérarchie du répertoire mysite. Ici, il est écrit dans le plus profond ʻurls.py`.polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
J'ai appelé «views.py» et mis le «chemin» vers «views.index» dans la liste des «motifs d'url».
Cela seul ne peut pas encore appeler «views.index».
Vous devez afficher le routage vers les sondages dans mysite / urls.py
.
mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
admin est à l'origine inclus.
Ajout de «chemin» aux sondages.
ʻInclude est une fonction nécessaire pour passer l'action au ʻurls.py
inférieur.
L'exception est ʻadmin.site.urls. Vous pouvez maintenant rechercher
views.index à
127.0.0.1: 8000 / polls`.
Référence sur l'envoi d'URL ⇒ Etude de DJango (1)
Vérifions-le immédiatement.
C'est assez solitaire, mais ça fait du bien parce que la réponse est conforme au code.
Définissez la base de données à utiliser dans mysite / setting.py
.
Heureusement, Python est livré en standard avec une petite base de données appelée SQLite
.
Ces lieux montrent également la philosophie de Python attachée aux batteries.
cmd
(Django) C:\User\mysite>python manage.py migrate
Ceci termine la création de la table de base de données. Je suis surpris que ce soit trop ridicule, mais est-ce une bonne chose à propos de Django? Lorsque vous utilisez une base de données autre que «SQLite», un paramètre distinct dans «setting.py» est requis.
Créez le modèle principal de l'application de sondages.
polls/models.py
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
Comme vous pouvez le voir dans le code, nous avons défini deux sous-classes de la classe models.Model
, Question
et Choice
.
De plus, l'attribut est défini sur «Champ».
Je n'ai pas encore rattrapé "Field". Je vais me consacrer.
models.ForeignKey
est celui qui va chercher la clé externe. Je suis désolé.
Après avoir créé le modèle, l'étape suivante consiste à activer le modèle dans setting.py
afin qu'il puisse être référencé.
mysite/setting.py
INSTALLED_APPS = [
'polls.apps.PollsConfig', #Ajouter cette ligne
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Au fait, qu'est-ce que polls.apps.PollsConfig
?
C'était ça ↓
polls/apps.py
from django.apps import AppConfig
#J'appelle ça.
class PollsConfig(AppConfig):
name = 'polls'
Et lorsque vous avez terminé le réglage sur setting.py
,
cmd
(Django) C:\User\mysite>python manage.py makemigrations polls
J'ai pu enregistrer les modifications du modèle en faisant makemigrations
<nom de l'application>.
Après cela, il semble que vous puissiez utiliser migrate
.
Ça s'allonge, alors j'aimerais le couper une fois ici. Merci beaucoup. Si vous remarquez une erreur, corrigez-la en conséquence.