--Project = Unité qui organise les applications ――Je pense qu'il vaut mieux créer une application pour chaque fonction de l'APP et enfin la mettre ensemble dans un projet stupide
Django_environment construction
.Terminal
#Vérifiez une seule fois la version de Django
$ python -m django --version
#Créez un projet appelé myapp et placez startproject pour préparer le contenu du projet dans une certaine mesure
$ django-admin startproject myapp
――Cela crée un répertoire appelé myapp
dans le répertoire dans lequel vous étiez.
--Contenu de myapp
--manage.py
: Le nom que vous utilisez pour exécuter et gérer ce projet
--myapp (Il y a une autre myapp dans myapp)
--__init __. py
: Déclare d'utiliser Python dans ce répertoire
--ʻAsgi.py: Cela semble être le point de départ lors de la connexion à un serveur compatible ASGI, je ne suis pas sûr --
settings.py: Vous pouvez jouer avec les paramètres du projet en éditant ici. --ʻUrls.py
: Décidez quelle def
exécuter lors de la connexion ici
-- wsgi.py
: Je n'ai aucune idée du point de départ lors de la connexion à un serveur compatible WSGI.
start project
--Je vous dirai à quelle adresse se connecter depuis le serveur
settings.py
#Découvrez ici et entrez l'adresse de votre page
# SECURITY WARNING: don't run with debug turned on in production!
# DEBUG = True
ALLOWED_HOSTS = ["Mon adresse"]
Terminal
#Aller sur myapp
$ cd myapp
#Exécutez le serveur de Django
$ python manage.py runserver
https: // localhost: 8000 /
et que la fusée sortCtrl + c
4.Hello World --Project = Une collection de nombreuses applications
Terminal
#Myapp fait ci-dessus(Grand projet stupide)Déménager à
$ cd myapp
#Déclarez de créer une application dans myapp et créez une application avec startapp
#Il est préparé dans une certaine mesure dans l'application créée sans exception
$ python manage.py startapp hello
myapp
myapp
┣━ hello
┣━ manage.py
┗━ myapp
――Un répertoire comme celui-ci est créé
bonjour
est OK si vous ne connaissez que views.py
pour le moment
--views.py
est le même endroit pour écrire les mouvements du backend, le fichier py de Flaskviews.py
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World')
--ʻIndex (request) renvoie la valeur contenue dans
HttpResponse ()lorsque cette fonction est demandée --OK si vous vous souvenez de renvoyer le contenu de
HttpResponse lorsque la
méthode de requête` est terminée
myapp/myapp/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('hello/', include('hello.urls')),
path('admin/', admin.site.urls),
]
dans
hello`myapp/hello/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
path ('', views.index, name = 'index'),
indique quelle fonction dans quel fichier fonctionne dans quel cas.
--''
spécifie l'adresse, cette fois il n'y a rien, donc ça marche avec / hello
. / hello / ~~
. Je mets parfois quelque chose comme <int: question_id> /
ici, mais c'est un peu difficile alors je vais l'omettre.
--Déclaré dans views.index
pour exécuter la fonction ʻindex of
views―― Pour le moment, attribuez le mouvement avec
nom = 'index'`myapp/myapp/settings.py
#Trouvez ici et ajoutez!
INSTALLED_APPS = [
'hello.apps.HelloConfig', #Ajoute ça!
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
--Définir à quelle classe se référer
--Si le nom de l'application est bbs
, écrivez-le comme bbs.apps.BbsConfig
BbsConfig
, collez la partie qui dit class ~~ Config
de ʻapps.py` de l'application.Terminal
#Revenir au répertoire du projet...
$ cd myapp
#Lancez Django!
$ python manage.py runserver
--Appelez le modèle (html) depuis views.py
et utilisez-le
templates
directement sous l'application, créez un répertoire de noms d'application dedans et placez-y le modèle.
--Comme Flask, il semble ne réagir qu'au contenu des modèlesmyapp/hello/views.py
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return render(request, 'hello/index.html')
--html peut être spécifié en mettant PATH dans return render ()
templates
décrit plus loin, omettez jusqu'à templates
et spécifiez ʻindex.html dans
hello dans
template`.index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p>Hello WoWWoW</p>
</body>
</html>
--ʻIndex.htmlpeut être écrit normalement pour le moment --Complet si
Hello WoWWoW` est affiché dans le résultat de l'exécution
views.py
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
context = {
'message': 'Hello World',
'players': ['Courageux', 'guerrier', 'sorcier', 'Ninja']
}
enemy = "Vase"
return render(request, 'hello/index.html', context ,enemy)
--Mettez ce que vous voulez passer comme ça dans return render ()
context = {~~}
et ne mettre qu'un seul contexte
à la place de return
.(templates)/hello/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p>{{ message }}</p>
{% for player in players %}
<p>{{ player }}A combattu un monstre</p>
{% endfor %}
<p>{{ enemy }}</p>
</body>
</html>
--En entrant le nom de la variable dans {{~~}}
, vous pouvez passer le contenu écrit du côté py.
{% ~~%}
--Pour les instructions For et if, vous devez fermer avec {% endfor%}
――C'est trop gênant par rapport à Flask!
Recommended Posts