Bis zum letzten Mal konnte ich lernen, wie man Daten abruft und in einer Datenbank speichert, daher möchte ich aus diesem Teil eine Webanwendung entwickeln.
Bis zum letzten Mal Ich möchte die Daten von League of Legends erhalten ① Ich möchte die Daten von League of Legends② erhalten Ich möchte die Daten von League of Legends erhalten ③
Stand 08.02.2020 OS:windows10 Anaconda:4.8.1 python:3.7.6 MySQL:8.0.19 Django:3.0.1 PyMySQL:0.9.3
python -m pip install django
Lauf
Ändern Sie die zu importierende Bibliothek von MySQLdb nach PyMySQL
python -m pip install pymysql
import mysql -> import pymysql
Führen Sie zuerst `django-admin startproject MyProject``` in einem Verzeichnis namens APP aus. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/3df0397c-1103-da55-89a1-1d9ca5622ce4.png) Diese Art von Hierarchie ist abgeschlossen. Führen Sie
python manage.py startapp LOLApp``
in derselben Hierarchie aus wie ** manage.py **.
Sie werden so etwas haben.
*** ** 'LOLApp.apps.LolappConfig', ** zu INSTALLED_APPS hinzugefügt ***. Dann ändern Sie *** DATENBANKEN ***. Standardmäßig ist die Datenbank sqlite3, machen Sie sie also zu mysql.
Originalcode
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
Nach der veränderung
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'LOLdb',
'USER': 'root',
'PASSWORD': '{Legen Sie zunächst das Passwort fest}',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS':{
'init_command': "SET
sql_mode='STRICT_TRANS_TABLES'",
}
}
}
Als nächstes ändern Sie *** LANGUAGE_CODE *** von ** 'en-us' ** in ** 'ja' **. Ändern Sie abschließend *** TIME_ZONE *** von ** 'UTC' ** in ** 'Asia / Tokyo' **.
Ganz am Ende
import pymysql
pymysql.install_as_MySQLdb
Hinzufügen.
python manage.Führen Sie py makemigrations LOL App aus
#### **`python manage.Führen Sie py migrate aus`**
```Führen Sie py migrate aus
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/7b645d72-6bac-f99e-f166-0c5fd22b9d31.png)
Zusätzlich zu der zuvor erstellten Tabelle ** match_data ** wird eine neue erstellt.
## Starten Sie den Entwicklungsserver
#### **`python manage.Führen Sie py run server aus und versuchen Sie, zur Ausgabeadresse zu springen.`**
```Führen Sie py run server aus und versuchen Sie, zur Ausgabeadresse zu springen.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/1fc2fc10-544f-6da0-8d84-0cf645ce03b1.png)
Wenn ein solcher Bildschirm angezeigt wird, ist er vorerst ein Erfolg.
## Ansicht erstellen
#### **`views.py`**
```python
from django.shortcuts import render
from django.http import HttpResponse #hinzufügen
# Create your views here.
def index(request):
return HttpResponse("Hello World!")
Erstellen Sie *** urls.py *** direkt unter *** LOLApp ***. Geben Sie den Pfad an, der der vorherigen Ansicht entspricht.
LOLApp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('',views.index,name='index'),
]
Nehmen Sie Änderungen an *** urls.py *** direkt unter *** MyProject *** vor.
MyProject/urls.py
from django.contrib import admin
from django.urls import path,include #add include
urlpatterns = [
path('admin/', admin.site.urls),
path('LOLApp/',include('LOLApp.urls')), #hinzufügen
]
python manage.Führen Sie py runserver zur vorherigen Adresse aus**/LOLApp**Wenn Sie hinzufügen und darauf zugreifen
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/fd349263-88c0-2bcc-509a-b87449691023.png)
Wenn ja, ist es vorerst in Ordnung.
### Erstellen Sie ein Modell
#### **`models.py`**
```python
from django.db import models
# Create your models here.
class Match_data(models.Model):
sn = models.CharField(max_length=200)
kills = models.IntegerField(default=0)
deaths = models.IntegerField(default=0)
assists = models.IntegerField(default=0)
championId = models.IntegerField(default=0)
roles = models.CharField(max_length=200)
cs = models.IntegerField(default=0)
gold = models.IntegerField(default=0)
damage = models.IntegerField(default=0)
side = models.CharField(max_length=200)
game_time = models.IntegerField(default=0)
python manage.py makemigrations LOLApp
#### **`python manage.py migrate`**
```py migrate
#### **`python manage.py sqlmigrate LOLApp 0001`**
```py sqlmigrate LOLApp 0001
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/024e5511-e62f-2e03-2a67-4fac3e7e0041.png)
Eine neue ** lolapp_match_data ** wird der Tabelle hinzugefügt.
#### **`python manage.Führen Sie py shell aus und probieren Sie es aus.`**
```Führen Sie py shell aus und probieren Sie es aus.
```python
from LOLApp.models import Match_data
Match_data.objects.all()
# <QuerySet []>
a = Match_data(sn="aaa",kills=2,deaths=3,assists=5,championId=100,roles="MID",cs=100,gold=10000,damage=10000,side="BLUE",game_time=1500)
a.save() #Daten speichern
a
#<Match_data: Match_data object (1)>
Wenn Sie mit einem MySQL-Befehl überprüfen Es wurde bestätigt, dass es in der Datenbank gespeichert wurde.
python manage.Führen Sie py createuperuser aus, um den Benutzernamen, die E-Mail-Adresse und das Passwort zu registrieren.
Führen Sie dann `` `python manage.py runsever``` aus und gehen Sie zu ** http://127.0.0.1:8000/admin/**, um zur Admin-Site zu springen. Ändern Sie *** admin.py ***, um mit dem Modell auf dieser Administrationssite zu arbeiten.
#### **`admin.py`**
```python
from django.contrib import admin
from .models import Match_data
# Register your models here.
admin.site.register(Match_data)
Wenn Sie dies hinzufügen und dann neu laden![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/e083f106-98cf-feb0-a4a0 -c7de71052209.png) Ein Modell wurde hinzugefügt Sie können mit den Daten auf diesem Bildschirm arbeiten.
Dieses Mal habe ich das Framework verwendet, um die aus dem vorherigen Element erhaltenen Daten zu ändern. Als nächstes muss ich, um eine WEB-Anwendung zu erstellen, eine Basis für die Anzeige erstellen, daher möchte ich das ein wenig machen.