[PYTHON] Flux de travail Django Girls-3

Créer un compte PythonAnywhere

www.pythonanywhere.com Djangohkp

Créer un nouveau projet

django-admin startproject mysite . .Installe Django dans le répertoire courant

changement de réglage

編集したファイル:settings.py Changer de fuseau horaire TIME_ZONE = 'Asia/Tokyo'

Changement de langue LANGUAGE_CODE = 'ja'

Ajouter un chemin de fichier statique STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Ajouter pythonanywhere.com à l'hôte ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']

Lorsque DEBUG est défini sur True et ALLOWED_HOSTS est une liste vide, la vérification est automatiquement effectuée pour les trois hôtes ['localhost', '127.0.0.1', '[:: 1]']. Je vais. Ce paramètre n'inclut pas le nom d'hôte PythonAnywhere que nous sommes sur le point de déployer et d'utiliser.

Configuration de la base de données

SQlite3 est défini par défaut DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } Exécutez la commande suivante sur la console python manage.py migrate

Démarrez le serveur Web

python manage.py runserver

Vérifiez la connexion à l'adresse suivante http://127.0.0.1:8000/

Créer un modèle Django

Créer une nouvelle application

1.python manage.py startapp blog 2. Ajoutez un élément à setting.py. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig', ] 3. Définissez un modèle d'article de blog dans models.py. Ecrivez les paramètres suivants from django.conf import settings from django.db import models from django.utils import timezone

class Post(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) title = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField(default=timezone.now) published_date = models.DateTimeField(blank=True, null=True)

def publish(self): self.published_date = timezone.now() self.save()

def __str__(self):
    return self.title

Site de référence https://docs.djangoproject.com/ja/2.2/ref/models/fields/#field-types

Créer une table pour le modèle dans la base de données

python manage.py makemigrations blog

Résultat d'exécution Migrations for 'blog': blog/migrations/0001_initial.py:

python manage.py migrate blog Résultat d'exécution Operations to perform: Apply all migrations: blog Running migrations: Applying blog.0001_initial... OK

S'inscrire à l'administrateur

1.blog/admin.pyの内容を書き換える from django.contrib import admin from .models import Post

admin.site.register(Post) 2. Exécutez python manage.py runserver 3. Accédez à http://127.0.0.1:8000/admin/ 4. Exécutez python manage.py createuperuser 5. Enregistrez le nom d'utilisateur, etc. 6. Tentative de connexion

~ Omis ~

Déployer

Paramètres de Python n'importe où

  1. Lancez la console Bash Python n'importe où
  2. Entrez la commande suivante dans la ligne de commande PythonAnywhere Bash
pip3.7 install --user pythonanywhere
pa_autoconfigure_django.py --python=3.6 https://github.com/<your-github-username>/my-first-blog.git

Résultat d'exécution

< Running API sanity checks >
   \
    ~<:>>>>>>>>>
Cloning into '/home/djangohkp/djangohkp.pythonanywhere.com'...
remote: Enumerating objects: 29, done.
remote: Counting objects: 100% (29/29), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 29 (delta 3), reused 29 (delta 3), pack-reused 0
Unpacking objects: 100% (29/29), done.
Checking connectivity... done.
< Creating virtualenv with Python3.6 >
   \
    ~<:>>>>>>>>>
Running virtualenv with interpreter /usr/bin/python3.6
Already using interpreter /usr/bin/python3.6
Using base prefix '/usr'
New python executable in /home/djangohkp/.virtualenvs/djangohkp.pythonanywhere.com/bin/python3.6
Also creating executable in /home/djangohkp/.virtualenvs/djangohkp.pythonanywhere.com/bin/python
Installing setuptools, pip, wheel...
done.
virtualenvwrapper.user_scripts creating /home/djangohkp/.virtualenvs/djangohkp.pythonanywhere.com/b
in/predeactivate
virtualenvwrapper.user_scripts creating /home/djangohkp/.virtualenvs/djangohkp.pythonanywhere.com/b
in/postdeactivate
virtualenvwrapper.user_scripts creating /home/djangohkp/.virtualenvs/djangohkp.pythonanywhere.com/b
in/preactivate
virtualenvwrapper.user_scripts creating /home/djangohkp/.virtualenvs/djangohkp.pythonanywhere.com/b
in/postactivate
virtualenvwrapper.user_scripts creating /home/djangohkp/.virtualenvs/djangohkp.pythonanywhere.com/bin/get_env_details

  ___________________________________________________________________
/                                                                     \
| Pip installing -r                                                   |
| /home/djangohkp/djangohkp.pythonanywhere.com/requirements.txt (this |
| may take a couple of minutes)                                       |
\                                                                     /
  -------------------------------------------------------------------
   \
    ~<:>>>>>>>>>
Looking in links: /usr/share/pip-wheels
Collecting Django~=2.2.4
  Downloading Django-2.2.11-py3-none-any.whl (7.5 MB)
     |████████████████████████████████| 7.5 MB 21.4 MB/s 
Processing /usr/share/pip-wheels/pytz-2019.3-py2.py3-none-any.whl
Collecting sqlparse
  Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
     |████████████████████████████████| 40 kB 973 kB/s 
Installing collected packages: pytz, sqlparse, Django
dSuccessfully installed Django-2.2.11 pytz-2019.3 sqlparse-0.3.1

< Creating web app via API >
   \
    ~<:>>>>>>>>>

< Adding static files mappings for /static/ and /media/ >
   \
    ~<:>>>>>>>>>

< Updating wsgi file at /var/www/djangohkp_pythonanywhere_com_wsgi.py >
   \
    ~<:>>>>>>>>>

< Updating settings.py >
   \
    ~<:>>>>>>>>>
< Running collectstatic >
   \
    ~<:>>>>>>>>>

119 static files copied to '/home/djangohkp/djangohkp.pythonanywhere.com/static'.

< Running migrate database >
   \
    ~<:>>>>>>>>>
Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying blog.0001_initial... OK
  Applying sessions.0001_initial... OK

< Reloading djangohkp.pythonanywhere.com via API >
   \
    ~<:>>>>>>>>>

  ____________________________________
/                                      \
| All done!  Your site is now live at  |
| https://djangohkp.pythonanywhere.com |
\                                      /
  ------------------------------------
   \
    ~<:>>>>>>>>>


  ___________________________________________________________________
/                                                                     \
| Starting Bash shell with activated virtualenv in project directory. |
| Press Ctrl+D to exit.                                               |
\                                                                     /
  -------------------------------------------------------------------
   \
    ~<:>>>>>>>>>
  1. Initialisez le compte administrateur Étant donné que la base de données sur PythonAnywhere et la base de données sur le PC local sont différentes, enregistrez également un compte administrateur ici. Il doit être identique à un compte local.

  2. Essayez d'accéder à la page Web créée http://.pythonanywhere.com/admin/

workflow de développement Web Modifier localement → Push to DitHub → Le serveur Web extrait les modifications

Dans l'environnement de production, des paramètres de sécurité supplémentaires sont requis en plus de cela. Page de référence https://docs.djangoproject.com/ja/2.2/howto/deployment/checklist/

Vue Django

・ À propos du contour de la vue (citation originale) La vue est l'endroit où vous écrivez la logique de votre application. La vue demande des informations au modèle que vous avez créé précédemment et les transmet au modèle. Les modèles seront créés dans le chapitre suivant. Les vues ne sont que des fonctions Python.

  1. Ajouter au blog / views.py
def post_list(request):
    return render(request, 'blog/post_list.html', {})
  1. Accédez à http://127.0.0.1:8000/ TemplateDoesNotExist at / error s'affiche

Édition HTML

  1. Créez un dossier de modèles dans le dossier de blog et un dossier de blog à l'intérieur.
  2. Créez post_list.html dans blog / template / blog.
  3. Accédez à http://127.0.0.1:8000/
  4. Succès si le code HTML vierge est affiché
  5. Modifier le code HTML

Pousser le code vers GitHub

  1. Exécutez git dans votre répertoire de travail command-line
git status

2.Faites en sorte que git reflète toutes les modifications dans le répertoire

git add --all.
  1. Vérifiez le téléchargement (tous les fichiers à télécharger sont affichés en vert)
git status
  1. Laisser un commentaire dans l'historique des modifications (les commentaires sont également reflétés dans Github)
git commit -m "Contenu du commentaire"
  1. Télécharger (pousser) sur Github
git push

Tirez le nouveau code vers Python n'importe où

  1. Dans la console Python n'importe où Bash, procédez comme suit:
cd ~/<your-pythonanywhere-domain>.pythonanywhere.com
git pull
  1. Accédez à l'onglet "Web" de la page d'accueil de Python n'importe où et rechargez pour mettre à jour l'application.

CSS Les changements dans le CSS créé ne sont pas reflétés. Verification requise

Recommended Posts

Flux de travail Django Girls-3
Note du didacticiel Django Girls
Django
Résumé du didacticiel Django Girls Première moitié
Django Note 4
Mémorandum Django
Installation de Django
Test Django
Django Note 5
Django Hands On
Touchez django
Mémo Django
Résumé de Django
Les bases de Django
Django Shoho
Paramètres initiaux de Django
Django + Docker
Glossaire Django
Installation de Django
Django: Références
Django Note 1
Django Note 3
Django Note 2
Démarrage de Django
Mémo Django
Django NullCharField