[PYTHON] Ich habe ein WebAPI gemacht! Erstellen einer Umgebung aus Django Rest Framework 1 mit EC2

Einführung

In diesem Artikel ** Erstellen Sie eine Web-API mit Django! Der Artikel ist **.

Ich verwende MySQL von RDS.

Dies ist eine Fortsetzung des vorherigen Artikels. Wenn Sie dies nicht verstehen, lesen Sie bitte den Artikel. [AWS] Ich habe versucht, EC2, RDS, Django zu verwenden. Umgebungskonstruktion von 1

$             <-Befehle auf Ihrem PC-Terminal
[ec2-user] $  <-Befehle, während Sie bei EC2 angemeldet sind
MySQL >       <-Befehle, während Sie bei MySQL angemeldet sind
#             <-Mein Kommentar
>>>           <-Ausführungsergebnis(Ausgabewert)

Voraussetzungen

Django-Projekterstellung

Ich habe es im vorherigen Artikel geschrieben, aber ich werde es wieder schreiben.

Lassen Sie uns ein Projekt erstellen


#Erstellen Sie ein Projekt namens testDjango
[ec2-user] $ django-admin startproject testDjango

[ec2-user] $ cd
[ec2-user] $ cd testDjango

#Erstellen Sie eine App mit dem Namen "Umfragen"
[ec2-user] $ python manage.py startapp polls

Siehe vorherigen Artikel [2.2], [2.5]

** Bearbeiten Sie settings.py mit FileZilla **

testDjango/settings.py



#Wenn Sie bei Google usw. nach einer IP-Adresse suchen, wird der Fehlerinhalt zurückgegeben
DEBUG = True

#Veränderung
ALLOWED_HOSTS = ['(EC2 offene IP-Adresse)','localhost']

#Veränderung
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'polls.apps.PollsConfig',
]
#(App Name).apps.(先頭大文字App Name)Config

...
(Abkürzung)
...

#Bemerkung Standardeinstellungen
# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': BASE_DIR / 'db.sqlite3',
#     }
# }

#Füllen Sie neu aus
#[NAME]Ist der Tabellenname in RDS, der später erstellt wird.
#[USER,PASSWORD,HOST]Geben Sie jeweils ein
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbtest',
        'USER': '(DB-Hauptbenutzer)',
        'PASSWORD': '(DB-Hauptbenutzerkennwort)',
        'HOST': '(DB-Endpunkt)',
        'PORT': '3306',
    }
}

...
(Abkürzung)
...

#Wechseln Sie zu Japanisch
#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'

#Wechseln Sie zur japanischen Zeit
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/

STATIC_URL = '/static/'

** Melden Sie sich bei MySQL auf RDS an **


[ec2-user] $ mysql -h (DB-Endpunkt) -u (DB-Master-Benutzername) -p
#Sie werden nach einem Passwort gefragt, geben Sie es also ein(Zeichen werden nicht angezeigt, sondern eingegeben)(Kopieren und Einfügen ist möglich)

>>> Welcome to the MariaDB monitor.
#Wird angezeigt, können Sie über RDS eine Verbindung zu MySQL herstellen.

#Zeigen Sie die Liste in der Datenbank an(Kann Kleinbuchstaben anzeigen Datenbank sein;)
MySQL > SHOW databases;

#Erstellen Sie eine Tabelle mit dem Namen "dbtest".
MySQL > CREATE DATABASE dbtest;

#Ende
MySQL > exit

Django-Einstellungen

Modell erstellen

polls/models.py



from django.db import models

class User(models.Model):
    #Erstellungszeit aufzeichnen
    created = models.DateTimeField(auto_now_add=True)
    #Notieren Sie den Namen des Benutzers
    name = models.CharField(max_length=100, blank=True, default='')
    #E-Mail des Benutzers
    mail = models.TextField()

    class Meta:
        ordering = ('created',)

** Migrieren Sie die Datenbank **


[ec2-user] $ python manage.py makemigrations polls
[ec2-user] $ python manage.py migrate

ich werde es prüfen


MySQL > show databases;
MySQL > use dbtest;
MySQL > show tables;
>>>
+----------------------------+
| Tables_in_dbtest           |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
| example_table              |
| polls_user                 | <--Wurden generiert
+----------------------------+   (App Name)_user

MySQL > exit

Die folgenden Artikel sind hilfreich [Lernnotiz] Über Migrationen durchführen und migrieren

Erstellen Sie serializers.py

Es wird nicht standardmäßig generiert. Erstellen Sie es daher mit Notepad oder Ähnlichem und übertragen Sie es mit FileZilla

――Serialisierung besteht darin, die in der Software verarbeiteten Daten so zu konvertieren, dass sie unverändert gespeichert, gesendet und empfangen werden können.

polls/serializers.py



from rest_framework import serializers
from polls.models import User


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'name', 'mail')

Implementieren Sie views.py

polls/views.py



from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from polls.models import User
from polls.serializers import UserSerializer


@csrf_exempt
def user_list(request):
    
    if request.method == 'GET':
        #Holen Sie sich alle Benutzer von MySQL
        polls = User.objects.all()
        serializer = UserSerializer(polls, many=True)
        #Kehre mit Json zurück
        return JsonResponse(serializer.data, safe=False)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = UserSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            #Json-Daten werden zurückgegeben, wenn die Registrierung erfolgreich war##Die Serie Status 200 wurde erfolgreich verarbeitet
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)

Erstellen Sie polls / urls.py

Bitte erstellen Sie auch eine neue

polls/urls.py



from django.urls import path
from polls import views

urlpatterns = [
    path('user/', views.user_list),
]

** Stellen Sie eine Verbindung zu den ursprünglichen URLs her.

testDjango/urls.py



from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('polls.urls')),
]

Damit sind die Einstellungen abgeschlossen.

Testen

Richten Sie einen lokalen Server ein Was ist lokal? Der folgende Artikel war für diejenigen, die sagen, leicht zu verstehen Wer betreibt Django? (Übersicht für die Bereitstellung)


[ec2-user] $ cd
[ec2-user] $ cd testDjango

[ec2-user] $ python manage.py runserver

Danach auf Google Chrome etc.


http://(EC2 offene IP-Adresse)/user/

Wenn Sie suchen


[]

Ich denke, dass eine leere Klammer zurückgegeben wird.

Daten eingeben

Es ist unpraktisch, dies beizubehalten Laden Sie die Google Chrome-Erweiterung ARC herunter

Erweiterter REST-Client-Download

Wenn ich versuche, mit GET zu kommunizieren, werden leere Klammern zurückgegeben

スクリーンショット 2020-10-21 14.01.45.png

Ich werde versuchen, per Post zu kommunizieren. Zu jener Zeit


{"name":"tanaka","mail":"[email protected]"}

Fügen Sie diese Informationen hinzu.

スクリーンショット 2020-10-21 14.07.27.png

Drücken Sie SENDEN und Sie erhalten eine Antwort

スクリーンショット 2020-10-21 14.10.35.png

Sie sollten auch überprüfen, ob Sie sich ordnungsgemäß bei GET registriert haben.

Auch die Datenbank


MySQL > use dbtest;
MySQL > SELECT * FROM polls_user;
>>>
+----+----------------------------+--------+-------------+
| id | created                    | name   | mail        |
+----+----------------------------+--------+-------------+
|  1 | 2020-10-21 05:10:23.730602 | tanaka | [email protected] |
+----+----------------------------+--------+-------------+

Die Registrierung ist jetzt erfolgreich.

abschließend

Ich hoffe dieser Artikel hilft jemandem.

Das nächste Mal werde ich versuchen, mit NginX, Gunicorn, eine Produktionsumgebung (ich bin ein Anfänger) zu erstellen.

Na dann

Referenzseite

Das Folgende und die Seiten, auf die ich in der Mitte dieses Artikels sehr viel verwiesen habe, werden vorgestellt. Vielen Dank.

[1]. Django REST Framework Tutorial Teil 1 [2]. Wer betreibt Django? (Übersicht für die Bereitstellung) [3]. [Lernnotiz] Über Migrationen durchführen und migrieren [4]. Häufig verwendete MySQL-Befehle

Recommended Posts

Ich habe ein WebAPI gemacht! Erstellen einer Umgebung aus Django Rest Framework 1 mit EC2
# 3 Erstellen Sie eine Python-Umgebung (Django) mit einer EC2-Instanz (ubuntu18.04) von AWS part2
Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)
Erstellen einer Django-Entwicklungsumgebung mit pyenv-virtualenv auf einem Mac
# 2 Erstellen Sie eine Python-Umgebung mit einer EC2-Instanz von AWS (ubuntu18.04).
Ich habe eine Python3-Umgebung unter Ubuntu mit direnv erstellt.
So erstellen Sie eine Django (Python) -Umgebung auf Docker
[AWS] Ich habe versucht, EC2, RDS, Django zu verwenden. Umweltbau ab 1
Erstellen Sie eine Python3-Umgebung unter CentOS7
Ich habe eine Entwicklungsumgebung für Django 3.0 mit Docker, Docker-Compose und Poetry erstellt
Erstellen Sie eine Python-Umgebung unter MacOS (Catallina)
Ich möchte eine Python-Umgebung erstellen
Erstellen Sie eine Python + OpenCV-Umgebung in Cloud9
Ich habe eine WEB-Bewerbung bei Django gemacht
Erstellen Sie mit Cloud9 (jupyter miniconda python3) eine Lernumgebung für "Deep Learning von Grund auf neu".
Erstellen Sie eine LAMP-Umgebung auf Ihrem lokalen Docker
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Erstellen Sie eine Python-Umgebung mit pyenv auf EC2 (Ubuntu)
Was ich durch die Bereitstellung von Django auf EC2 gefunden habe
Erstellen Sie einfach eine Python 3-Ausführungsumgebung unter Windows
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Erstellen Sie eine Python-Umgebung auf einem Mac (Mountain Lion)
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Django REST Framework Ein wenig nützlich zu wissen.
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Erstellen Sie eine Python-Ausführungsumgebung unter IBM i
Erstellen Sie eine TensorFlow-Entwicklungsumgebung auf Amazon EC2 mit Befehlskopie
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
[Django] Drücken Sie einen Befehl, den Sie in dem Prozess ausgeführt haben, der auf manage.py ausgeführt wird.
Erstellen Sie eine Todo-App mit Django REST Framework + Angular
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
Erstellen Sie eine Python-Umgebung für maschinelles Lernen unter Mac OS
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
[Teil 2] Erstellen wir einen Webserver mit EC2 Linux
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Erstellen Sie eine virtuelle Python-Umgebung mit venv (Django + MySQL ①)
[Go + Gin] Ich habe versucht, eine Docker-Umgebung zu erstellen
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
Stellen Sie die mit PTVS erstellte Django-App in Azure bereit
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Windows10 (x64) Erstellen Sie nativ eine maschinelle Lernumgebung
Grundlagen des Django REST-Frameworks
Tipps zum Django Rest Framework
Als ich versuchte, eine Rails-Umgebung auf WSL2 (Ubuntu 20.04LTS) zu erstellen, stolperte ich und fiel hin.
Erstellen Sie mit macOS sierra eine Python-Lernumgebung für maschinelles Lernen
Erstellen Sie eine maschinelle Lernumgebung auf einem Mac (pyenv, deeplearning, opencv).
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
Ich habe eine Schachtel gemacht, um mich auszuruhen, bevor Pepper müde wird
Ich habe einen Befehl zum Generieren eines Kommentars für eine Tabelle in Django eingegeben