Partie 1 https://qiita.com/TuruMaru/items/4df41577fb9f722c7864
Je vais créer une base de données, mais pour ce faire, je dois d'abord écrire le contenu de la table dans models.py
.
posts/models.py
from django.db import models
#Importer pour utiliser le fuseau horaire
from django.utils import timezone
# Create your models here.
#models.C'est une règle d'écrire un modèle
class Posts(models.Model):
#Le méta et l'objet ne sont pas magiques
class Meta(object):
#Spécifiez le nom de la table à créer
db_table = 'posts'
#Nom de colonne=Format de données(Le nom affiché sur l'écran de gestion,Autres contraintes)
text = models.CharField(verbose_name='Texte', max_length=255)
created_at = models.DateField(verbose_name='Date de création', default=timezone.now)
#Définir pour être affiché sur l'écran de gestion(la magie)
def __str__(self):
return self.text, self.created_at
Vous êtes maintenant prêt à créer une table appelée posts. Sur cette base, nous opérerons dans le terminal.
$ python manage.py makemigrations posts
Migrations for 'posts':
posts/migrations/0001_initial.py
- Create model Posts
Vous avez maintenant créé le fichier 0001_initial.py
.
Ce fichier contient le contenu de la base de données à créer.
Cependant, cette commande n'a pas encore créé de base de données. Je suis prêt.
$ python manage.py sqlmigrate posts 0001
BEGIN;
--
-- Create model Posts
--
CREATE TABLE "posts" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "text" varchar(255) NOT NULL, "created_at" date NOT NULL);
COMMIT;
Vous pouvez voir le code SQL lorsque la table est créée avec cette commande.
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, posts, sessions
Running migrations:
Applying posts.0001_initial... OK
Oui, c'est fait. Merci beaucoup.
Une petite opération est nécessaire pour vérifier sur l'écran de gestion, mais je vais l'omettre ici.
Si vous ne passez pas le chemin, le code que vous avez écrit ne sera pas affiché dans le navigateur. Il existe également d'autres paramètres, alors faisons-le d'abord.
mysite/setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#Partie supplémentaire d'ici
'posts',
'templates',
]
Après avoir créé l'application, ajoutez-la à ʻINSTALLED_APPS`.
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#↓ Ajoutez une ligne ici
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Dites à python que vous avez créé le répertoire des modèles.
Aussi, j'écrirai un peu views.py et html pour vérifier l'opération.
posts/views.py
from django.shortcuts import render
# Create your views here.
from django.views.generic import View
class IndexView(View):
def get(self,request, *args, **kwargs):
return render(request, 'posts/post.html')
index = IndexView.as_view()
templates/base.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{% block page_title %}{% endblock %}</title>
</head>
<body>
<hr>
<h1>{% block title %}{% endblock %}</h1>
<hr>
{% block content%}{% endblock %}
<hr>
</body>
</html>
templates/posts/post.html
{% extends "base.html" %}
{% block page_title %}post{% endblock %}
{% block title %}post{% endblock %}
{% block content %}
<h1>Posts</h1>
{% endblock %}
Habituellement, base.html
est utilisé comme base de toutes les pages, et post.html
et d'autres remplissent le contenu.
Ensuite, j'écrirai enfin ʻurls.py`.
mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('posts.urls')),
]
posts/urls.py
from django.urls import path
from . import views
app_name = 'posts'
urlpatterns = [
path('', views.index, name='index'),
]
Si vous passez un appel comme celui-ci, démarrez un serveur local et vérifiez-le.
$python manage.py runserver 3000
Tapez ensuite «localhost: 3000» sur Google ou quelque chose comme ça.
Si ça se passe comme ça, la relation de passe est terminée. Écrivons le code de l'application babillard de la suivante.
Recommended Posts