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 ③
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
python -m pip install django
Courir
Modifiez la bibliothèque pour importer de MySQLdb vers PyMySQL
python -m pip install pymysql
import mysql -> import pymysql
Tout d'abord, exécutez
django-admin startproject MyProject '' sur un répertoire appelé APP.
Ce type de hiérarchie est terminé.
Exécutez
python manage.py startapp LOLApp`
dans la même hiérarchie que ** manage.py **.
Vous aurez quelque chose comme ça.
*** 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' **.
À 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 Il a été confirmé qu'il était enregistré dans la base de données.
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é Vous pouvez utiliser les données sur cet écran.
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.