[PYTHON] Je souhaite créer une application WEB en utilisant les données de League of Legends ①

Je souhaite créer une application WEB de collecte de données LOL à l'aide de Django

Jusqu'à la dernière fois, j'ai pu apprendre à récupérer des données et à les enregistrer dans une base de données, j'aimerais donc développer une application Web à partir de cette partie.

Jusqu'à la dernière fois Je veux obtenir les données de League of Legends ① Je veux obtenir les données de League of Legends② Je veux obtenir les données de League of Legends ③

environnement

Au 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

Présentation de Django

Installation

python -m pip install djangoCourir

Changer depuis la dernière fois

Modifiez la bibliothèque pour importer de MySQLdb vers PyMySQL python -m pip install pymysql import mysql -> import pymysql

Créer

Tout d'abord, exécutez django-admin startproject MyProject '' sur un répertoire appelé APP. image.png Ce type de hiérarchie est terminé. Exécutez python manage.py startapp LOLApp` dans la même hiérarchie que ** manage.py **. image.png Vous aurez quelque chose comme ça.

Modifier setting.py

*** Ajout de ** 'LOLApp.apps.LolappConfig', ** à INSTALLED_APPS ***. Puis changez *** BASES DE DONNÉES ***. Par défaut, la base de données est sqlite3, alors faites-en mysql.

Code d'origine


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
   }
}

Après le changement


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'LOLdb',
        'USER': 'root',
        'PASSWORD': '{Mot de passe initialement défini}',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS':{
            'init_command': "SET 
            sql_mode='STRICT_TRANS_TABLES'",
        }
    }
}

Ensuite, changez *** LANGUAGE_CODE *** de ** 'en-us' ** à ** 'ja' **. Enfin, changez *** TIME_ZONE *** de ** 'UTC' ** à ** 'Asia / Tokyo' **.

Modifier manage.py

À la fin

import pymysql

pymysql.install_as_MySQLdb

Ajouter.

python manage.Exécutez l'application py makemigrations LOL



#### **`python manage.Exécutez py migrate`**
```Exécutez py migrate

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/7b645d72-6bac-f99e-f166-0c5fd22b9d31.png)
 En plus de la table ** match_data ** créée précédemment, une nouvelle sera créée.

## Démarrer le serveur de développement

#### **`python manage.Exécutez py run server et essayez d'accéder à l'adresse de sortie.`**
```Exécutez py run server et essayez d'accéder à l'adresse de sortie.

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/1fc2fc10-544f-6da0-8d84-0cf645ce03b1.png)
 Si un tel écran apparaît, c'est un succès pour le moment.

## Créer une vue

#### **`views.py`**
```python

from django.shortcuts import render
from django.http import HttpResponse #ajouter à
# Create your views here.

def index(request):
    return HttpResponse("Hello World!")

Créez *** urls.py *** directement sous *** LOLApp ***. Donnez le chemin correspondant à la vue précédente.

LOLApp/urls.py


from django.urls import path
from . import views

urlpatterns = [
    path('',views.index,name='index'),
]

Apportez des modifications à *** urls.py *** directement sous *** MyProject ***.

MyProject/urls.py


from django.contrib import admin
from django.urls import path,include #ajouter inclure

urlpatterns = [
    path('admin/', admin.site.urls),
    path('LOLApp/',include('LOLApp.urls')), #ajouter à
]

python manage.Exécutez py runserver à l'adresse précédente**/LOLApp**Lorsque vous ajoutez et accédez


 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/fd349263-88c0-2bcc-509a-b87449691023.png)
 Si c'est le cas, c'est OK pour le moment.

### Créer un modèle


#### **`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)
 ** lolapp_match_data ** est nouvellement ajouté à la table.


#### **`python manage.Exécutez py shell et essayez-le.`**
```Exécutez py shell et essayez-le.


```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() #Enregistrer des données
a
#<Match_data: Match_data object (1)>

Si vous vérifiez avec une commande MySQL image.png Il a été confirmé qu'il était enregistré dans la base de données.

Créer un compte administratif

python manage.Exécutez py createuperuser pour enregistrer le nom d'utilisateur, l'adresse e-mail et le mot de passe.


 Ensuite, exécutez `` python manage.py runsever '' et accédez à ** http://127.0.0.1:8000/admin/** pour accéder au site d'administration. Modifiez *** admin.py *** pour travailler avec le modèle sur ce site d'administration.


#### **`admin.py`**
```python

from django.contrib import admin
from .models import Match_data

# Register your models here.
admin.site.register(Match_data)

Si vous ajoutez ceci et rechargez-le![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571147/e083f106-98cf-feb0-a4a0 -c7de71052209.png) Un modèle a été ajoutéImage.png Vous pouvez utiliser les données sur cet écran.

Résumé

Cette fois, j'ai utilisé le framework pour modifier les données obtenues à partir de l'élément précédent. Ensuite, pour créer une application WEB, je dois créer une base à afficher, donc j'aimerais en faire un peu.

Recommended Posts

Je souhaite créer une application WEB en utilisant les données de League of Legends ①
Je veux obtenir les données de League of Legends ③
Je veux obtenir les données de League of Legends ①
Qiskit: Je veux créer un circuit qui crée des états arbitraires! !!
J'ai créé une application Web en Python qui convertit Markdown en HTML
(Remarque) Une application Web qui utilise TensorFlow pour déduire les noms de morceaux recommandés.
Je souhaite créer une application Web en utilisant React et Python flask
Je souhaite créer facilement un modèle de bruit
Je veux créer une fenêtre avec Python
Je souhaite créer un type d'implémentation pouvant être branché
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Une bibliothèque pour la science des données "Je veux faire ça" sur le bloc-notes Jupyter
Je veux donner un group_id à une trame de données pandas
Je souhaite installer un package de Php Redis
Je souhaite créer manuellement une légende avec matplotlib
Je veux dire qu'il y a un prétraitement des données ~
(Remarque) Une application Web qui utilise TensorFlow pour déduire les noms de morceaux recommandés [Créer un environnement d'exécution avec docker-compose]
(Remarque) Application Web qui utilise TensorFlow pour déduire les noms de morceaux recommandés [Apprentissage automatique]
Créez une application Web qui reconnaît les nombres avec un réseau neuronal
Je veux démarrer beaucoup de processus à partir de python
Je veux créer un Dockerfile pour le moment.
[Python] J'ai écrit un test de "Streamlit" qui facilite la création d'applications de visualisation.
J'ai essayé de créer un environnement serveur qui fonctionne sous Windows 10
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
J'ai essayé de créer une liste de nombres premiers avec python
Je veux créer un système pour éviter d'oublier de serrer la clé 1
Comment créer une grande quantité de données de test dans MySQL? ??
Je veux créer un fichier pip et le refléter dans le menu fixe
Je souhaite créer un service d'apprentissage automatique sans programmation! API Web
Création d'un service qui vous permet de rechercher des données J-League
Notez que j'étais accro à accéder à la base de données avec mysql.connector de Python en utilisant une application Web
Une histoire que j'ai eu du mal en essayant de créer une "application qui convertit des images comme des peintures" avec la première application Web
J'ai essayé de créer un linebot (implémentation)
Je veux imprimer dans la notation d'inclusion
J'ai essayé de créer un linebot (préparation)
[Pour les débutants] Je veux obtenir l'index d'un élément qui satisfait une certaine expression conditionnelle
"CSI" que je souhaite enseigner aux débutants en production d'applications pour console interactive
Je veux créer un environnement Python
Un mémorandum sur la façon d'écrire des pandas que j'ai tendance à oublier personnellement
L'histoire du développement d'une application WEB qui génère automatiquement des copies de capture [MeCab]
Je veux colorer une partie de la chaîne Excel avec Python
Comment créer un wrapper qui préserve la signature de la fonction à envelopper
J'ai créé une API Web
J'ai essayé d'effectuer une analyse de cluster de clients à l'aide des données d'achat
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
J'ai essayé de comparer le cadre d'application Web
Je souhaite créer un service d'apprentissage automatique sans programmation!
J'ai fait une application WEB avec Django
Je souhaite créer une API qui retourne un modèle avec une relation récursive dans Django REST Framework
Ce à quoi j'étais accro lors de la création d'applications Web dans un environnement Windows
Les débutants ont essayé de créer une application Web native pour le cloud à l'aide de Datastore / GAE
Je veux créer un bel environnement de développement Python pour mon nouveau Mac
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
J'ai créé un Line Bot qui utilise Python pour récupérer les e-mails non lus de Gmail!