[PYTHON] Django Girls-3 Workflow

Erstellen Sie ein PythonAnywhere-Konto

www.pythonanywhere.com Djangohkp

Ein neues Projekt erstellen

django-admin startproject mysite . Installiert Django im aktuellen Verzeichnis

Einstellungsänderung

編集したファイル:settings.py Zeitzone ändern TIME_ZONE = 'Asia/Tokyo'

Sprachwechsel LANGUAGE_CODE = 'ja'

Fügen Sie einen statischen Dateipfad hinzu STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Fügen Sie pythonanywhere.com zum Host hinzu ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']

Wenn DEBUG auf True gesetzt ist und ALLOWED_HOSTS eine leere Liste ist, wird die Prüfung automatisch für die drei Hosts ['localhost', '127.0.0.1', '[:: 1]'] durchgeführt. Ich werde. In dieser Konfiguration ist der PythonAnywhere-Hostname, den wir bereitstellen und verwenden möchten, nicht enthalten.

Datenbankeinrichtung

SQlite3 ist standardmäßig eingestellt DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } Führen Sie den folgenden Befehl auf der Konsole aus python manage.py migrate

Starten Sie den Webserver

python manage.py runserver

Überprüfen Sie die Verbindung unter der folgenden Adresse http://127.0.0.1:8000/

Erstellen eines Django-Modells

Erstellen Sie eine neue Anwendung

1.python manage.py startapp blog 2. Fügen Sie ein Element zu settings.py hinzu. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig', ] 3. Definieren Sie ein Blogpost-Modell in models.py. Schreiben Sie die folgenden Einstellungen 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

Referenzseite https://docs.djangoproject.com/ja/2.2/ref/models/fields/#field-types

Erstellen Sie eine Tabelle für das Modell in der Datenbank

python manage.py makemigrations blog

Ausführungsergebnis Migrations for 'blog': blog/migrations/0001_initial.py:

python manage.py migrate blog Ausführungsergebnis Operations to perform: Apply all migrations: blog Running migrations: Applying blog.0001_initial... OK

Registrieren Sie sich für admin

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

admin.site.register(Post) 2. Führen Sie python manage.py runserver aus 3. Greifen Sie auf http://127.0.0.1:8000/admin/ zu. 4. Führen Sie python manage.py createuperuser aus 5. Registrieren Sie den Benutzernamen usw. 6. Anmeldeversuch

~ Ausgelassen ~

Bereitstellen

Python überall Einstellungen

  1. Starten Sie die Python-Bash-Konsole an einer beliebigen Stelle
  2. Geben Sie den folgenden Befehl in die PythonAnywhere Bash-Befehlszeile ein
pip3.7 install --user pythonanywhere
pa_autoconfigure_django.py --python=3.6 https://github.com/<your-github-username>/my-first-blog.git

Ausführungsergebnis

< 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. Initialisieren Sie das Administratorkonto Da sich die Datenbank auf PythonAnywhere und die Datenbank auf dem lokalen PC unterscheiden, registrieren Sie auch hier ein Administratorkonto. Es sollte mit einem lokalen Konto identisch sein.

  2. Versuchen Sie, auf die erstellte Webseite zuzugreifen http://.pythonanywhere.com/admin/

Webentwicklungs-Workflow Lokale Änderung → Push to DitHub → Webserver ruft Änderungen ab

In der Produktionsumgebung sind zusätzlich zusätzliche Sicherheitseinstellungen erforderlich. Referenzseite https://docs.djangoproject.com/ja/2.2/howto/deployment/checklist/

Django Ansicht

・ Über den Umriss der Ansicht (Originalzitat) In der Ansicht schreiben Sie die Logik Ihrer App. Die Ansicht fordert Informationen von dem zuvor erstellten Modell an und übergibt sie an die Vorlage. Vorlagen werden im nächsten Kapitel erstellt. Ansichten sind nur Python-Funktionen.

  1. Zu blog / views.py hinzufügen
def post_list(request):
    return render(request, 'blog/post_list.html', {})
  1. Greifen Sie auf http://127.0.0.1:8000/ zu. TemplateDoesNotExist at / error wird angezeigt

HTML-Bearbeitung

  1. Erstellen Sie einen Vorlagenordner im Blog-Ordner und einen Blog-Ordner darin.
  2. Erstellen Sie post_list.html in blog / template / blog.
  3. Greifen Sie auf http://127.0.0.1:8000/ zu.
  4. Erfolg, wenn leeres HTML angezeigt wird
  5. Bearbeiten Sie HTML

Code an GitHub senden

  1. Führen Sie git in Ihrem Arbeitsverzeichnis aus command-line
git status
  1. Lassen Sie git alle Änderungen im Verzeichnis widerspiegeln
git add --all.
  1. Aktivieren Sie den Upload (alle hochzuladenden Dateien werden grün angezeigt).
git status
  1. Hinterlassen Sie einen Kommentar im Änderungsverlauf (Kommentare werden auch in Github angezeigt)
git commit -m "Inhalt des Kommentars"
  1. Hochladen (Push) auf Github
git push

Ziehen Sie überall neuen Code nach Python

  1. Gehen Sie in der Python Bash-Konsole an einem beliebigen Ort wie folgt vor:
cd ~/<your-pythonanywhere-domain>.pythonanywhere.com
git pull
  1. Wechseln Sie auf der Python-Startseite zur Registerkarte "Web" und laden Sie sie neu, um die App zu aktualisieren.

CSS Die Änderungen im erstellten CSS werden nicht berücksichtigt. Bestätigung notwendig

Recommended Posts

Django Girls-3 Workflow
Django Girls Tutorial Hinweis
Django
Django Girls Tutorial Zusammenfassung Erste Hälfte
Django Note 4
Django Memorandum
Django Installation
Django-Test
Django Note 5
Django zum Anfassen
Berühre Django
Django Memo
Django Zusammenfassung
Django Grundlagen
Django Shoho
Django Grundeinstellungen
Django + Docker
Django Glossar
Django Installation
Django: Referenzen
Django Note 1
Django Note 3
Django Note 2
Django-Start
Django Memo
Django NullCharField