diff --git a/Code/Richard/django/pokedex/manage.py b/Code/Richard/django/pokedex/manage.py new file mode 100644 index 00000000..a218e1b5 --- /dev/null +++ b/Code/Richard/django/pokedex/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_pokedex.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/Code/Richard/django/pokedex/pokedex_app/__init__.py b/Code/Richard/django/pokedex/pokedex_app/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Code/Richard/django/pokedex/pokedex_app/admin.py b/Code/Richard/django/pokedex/pokedex_app/admin.py new file mode 100644 index 00000000..606103f5 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/admin.py @@ -0,0 +1,9 @@ +from django.contrib import admin +from .models import Pokemon, PokemonType +class InlineModelAdmin(admin.ModelAdmin): + #Pokemon.types(ModelAdmin.filter_horizontal) + pass + +# Register your models here. +admin.site.register([Pokemon]) +admin.site.register([PokemonType]) \ No newline at end of file diff --git a/Code/Richard/django/pokedex/pokedex_app/apps.py b/Code/Richard/django/pokedex/pokedex_app/apps.py new file mode 100644 index 00000000..14f7ad62 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PokedexAppConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'pokedex_app' diff --git a/Code/Richard/django/pokedex/pokedex_app/management/commands/load_pokemon.py b/Code/Richard/django/pokedex/pokedex_app/management/commands/load_pokemon.py new file mode 100644 index 00000000..1b80d63e --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/management/commands/load_pokemon.py @@ -0,0 +1,91 @@ +from django.core.management.base import BaseCommand +from django.db import models +import requests + +from pokedex_app.models import Pokemon, PokemonType + + +class Command(BaseCommand): + def handle(self, *args, **kwargs): + url = 'https://raw.githubusercontent.com/PdxCodeGuild/Class_Raven/master/4%20Django/labs/03%20Pokedex/pokemon.json' + + Pokemon.objects.all().delete() + PokemonType.objects.all().delete() + response= requests.get(f'https://raw.githubusercontent.com/PdxCodeGuild/Class_Raven/master/4%20Django/labs/03%20Pokedex/pokemon.json') + data=response.json() + data=data['pokemon'] + #data.reverse() + + for poke in data: + number=poke['number'] + name = poke['name'] + height = poke['height'] + weight = poke['weight'] + image_front = poke['image_front'] + image_back = poke['image_back'] + #types=[type['type']['name'] for type in poke['types']] + types=poke['types'] + + pokemon, created=Pokemon.objects.get_or_create( + number=number, + name=name.title(), + height=height, + weight=weight, + image_front=image_front, + image_back=image_back, + ) + for type_item in types: + type_item=type_item.title() + pokemon_type, created=PokemonType.objects.get_or_create(name=type_item) + pokemon.types.add(pokemon_type) + #print(pokemon, pokemon_type) + #print(vars(pokemon)) + + + + # for type in types: #starting point with Keegan + # pokemon, created=PokemonType.objects.get_or_create(name=type) + # pokemon.types.add(name) + + #print(pokemon) + #print(PokemonType.objects.all) + + + + + + + + + + + + # response = requests.get(url) + + # pokedex_data = response.json() #dict 'pokemon':[data I want as a list of dictionaries] + # pokedex_data = pokedex_data['pokemon']#list of dictionaries + + #print(pokedex_data) + # create a database entry for each pokemon + # for loop to pull data from each individual pokemon dictionary + # for pokemon in pokedex_data: + # #print(pokemon) + # #print(" ") + # number = pokemon['number'] + # name = pokemon['name'] + # height = pokemon['height'] + # weight = pokemon['weight'] + # image_front = pokemon['image_front'] + # image_back = pokemon['image_back'] + # types = pokemon['types'] + # pokemon = Pokemon.objects.create( + # number=number, + # name=name, + # height=height, + # weight=weight, + # image_front=image_front, + # image_back=image_back, + # ) + #apparetly you need to save before adding manytomany data..I still don't know how to get it right + #pokemon.add(types) + #print(pokemon) diff --git a/Code/Richard/django/pokedex/pokedex_app/migrations/0001_initial.py b/Code/Richard/django/pokedex/pokedex_app/migrations/0001_initial.py new file mode 100644 index 00000000..9681afdb --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/migrations/0001_initial.py @@ -0,0 +1,34 @@ +# Generated by Django 4.0.3 on 2022-03-22 00:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='PokemonType', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30)), + ], + ), + migrations.CreateModel( + name='Pokemon', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('number', models.IntegerField()), + ('name', models.CharField(max_length=30)), + ('height', models.FloatField()), + ('weight', models.FloatField()), + ('image_front', models.CharField(max_length=30)), + ('image_back', models.CharField(max_length=30)), + ('types', models.ManyToManyField(to='pokedex_app.pokemontype')), + ], + ), + ] diff --git a/Code/Richard/django/pokedex/pokedex_app/migrations/0002_alter_pokemon_id.py b/Code/Richard/django/pokedex/pokedex_app/migrations/0002_alter_pokemon_id.py new file mode 100644 index 00000000..f81d28bc --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/migrations/0002_alter_pokemon_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.3 on 2022-04-01 00:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pokedex_app', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='pokemon', + name='id', + field=models.AutoField(primary_key=True, serialize=False), + ), + ] diff --git a/Code/Richard/django/pokedex/pokedex_app/migrations/0003_alter_pokemontype_id.py b/Code/Richard/django/pokedex/pokedex_app/migrations/0003_alter_pokemontype_id.py new file mode 100644 index 00000000..32ca3329 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/migrations/0003_alter_pokemontype_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.3 on 2022-04-01 00:48 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pokedex_app', '0002_alter_pokemon_id'), + ] + + operations = [ + migrations.AlterField( + model_name='pokemontype', + name='id', + field=models.AutoField(primary_key=True, serialize=False), + ), + ] diff --git a/Code/Richard/django/pokedex/pokedex_app/migrations/0004_alter_pokemon_id_alter_pokemontype_id.py b/Code/Richard/django/pokedex/pokedex_app/migrations/0004_alter_pokemon_id_alter_pokemontype_id.py new file mode 100644 index 00000000..fced17dc --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/migrations/0004_alter_pokemon_id_alter_pokemontype_id.py @@ -0,0 +1,23 @@ +# Generated by Django 4.0.3 on 2022-04-01 01:00 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pokedex_app', '0003_alter_pokemontype_id'), + ] + + operations = [ + migrations.AlterField( + model_name='pokemon', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='pokemontype', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + ] diff --git a/Code/Richard/django/pokedex/pokedex_app/migrations/__init__.py b/Code/Richard/django/pokedex/pokedex_app/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Code/Richard/django/pokedex/pokedex_app/models.py b/Code/Richard/django/pokedex/pokedex_app/models.py new file mode 100644 index 00000000..c72575a8 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/models.py @@ -0,0 +1,20 @@ +from django.db import models + +# Create your models here. +class PokemonType(models.Model): + name=models.CharField(max_length=30) + + def __str__(self): + return f"{self.name}" + +class Pokemon(models.Model): + number=models.IntegerField() + name=models.CharField(max_length=30) + height=models.FloatField() + weight=models.FloatField() + image_front=models.CharField(max_length=30) + image_back=models.CharField(max_length=30) + types=models.ManyToManyField('PokemonType') + + def __str__(self): + return f"{self.name}" \ No newline at end of file diff --git a/Code/Richard/django/pokedex/pokedex_app/templates/home.html b/Code/Richard/django/pokedex/pokedex_app/templates/home.html new file mode 100644 index 00000000..f98bd101 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/templates/home.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + Pokedex Home + + + + + + + \ No newline at end of file diff --git a/Code/Richard/django/pokedex/pokedex_app/tests.py b/Code/Richard/django/pokedex/pokedex_app/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Code/Richard/django/pokedex/pokedex_app/views.py b/Code/Richard/django/pokedex/pokedex_app/views.py new file mode 100644 index 00000000..91ea44a2 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedex_app/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/Code/Richard/django/pokedex/pokedx.json b/Code/Richard/django/pokedex/pokedx.json new file mode 100644 index 00000000..b13d7406 --- /dev/null +++ b/Code/Richard/django/pokedex/pokedx.json @@ -0,0 +1,1885 @@ + +{ + "pokemon": [ + { + "number": 1, + "name": "bulbasaur", + "height": 7, + "weight": 69, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/1.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/bulbasaur" + }, + { + "number": 2, + "name": "ivysaur", + "height": 10, + "weight": 130, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/2.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/2.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/ivysaur" + }, + { + "number": 3, + "name": "venusaur", + "height": 20, + "weight": 1000, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/3.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/3.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/venusaur" + }, + { + "number": 4, + "name": "charmander", + "height": 6, + "weight": 85, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/4.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/charmander" + }, + { + "number": 5, + "name": "charmeleon", + "height": 11, + "weight": 190, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/5.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/5.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/charmeleon" + }, + { + "number": 6, + "name": "charizard", + "height": 17, + "weight": 905, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/6.png", + "types": [ + "flying", + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/charizard" + }, + { + "number": 7, + "name": "squirtle", + "height": 5, + "weight": 90, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/7.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/7.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/squirtle" + }, + { + "number": 8, + "name": "wartortle", + "height": 10, + "weight": 225, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/8.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/8.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/wartortle" + }, + { + "number": 9, + "name": "blastoise", + "height": 16, + "weight": 855, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/9.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/9.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/blastoise" + }, + { + "number": 10, + "name": "caterpie", + "height": 3, + "weight": 29, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/10.png", + "types": [ + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/caterpie" + }, + { + "number": 11, + "name": "metapod", + "height": 7, + "weight": 99, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/11.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/11.png", + "types": [ + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/metapod" + }, + { + "number": 12, + "name": "butterfree", + "height": 11, + "weight": 320, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/12.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/12.png", + "types": [ + "flying", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/butterfree" + }, + { + "number": 13, + "name": "weedle", + "height": 3, + "weight": 32, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/13.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/13.png", + "types": [ + "poison", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/weedle" + }, + { + "number": 14, + "name": "kakuna", + "height": 6, + "weight": 100, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/14.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/14.png", + "types": [ + "poison", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/kakuna" + }, + { + "number": 15, + "name": "beedrill", + "height": 10, + "weight": 295, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/15.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/15.png", + "types": [ + "poison", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/beedrill" + }, + { + "number": 16, + "name": "pidgey", + "height": 3, + "weight": 18, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/16.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/16.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/pidgey" + }, + { + "number": 17, + "name": "pidgeotto", + "height": 11, + "weight": 300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/17.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/17.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/pidgeotto" + }, + { + "number": 18, + "name": "pidgeot", + "height": 15, + "weight": 395, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/18.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/18.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/pidgeot" + }, + { + "number": 19, + "name": "rattata", + "height": 3, + "weight": 35, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/19.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/19.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/rattata" + }, + { + "number": 20, + "name": "raticate", + "height": 7, + "weight": 185, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/20.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/20.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/raticate" + }, + { + "number": 21, + "name": "spearow", + "height": 3, + "weight": 20, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/21.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/21.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/spearow" + }, + { + "number": 22, + "name": "fearow", + "height": 12, + "weight": 380, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/22.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/22.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/fearow" + }, + { + "number": 23, + "name": "ekans", + "height": 20, + "weight": 69, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/23.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/23.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/ekans" + }, + { + "number": 24, + "name": "arbok", + "height": 35, + "weight": 650, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/24.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/24.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/arbok" + }, + { + "number": 25, + "name": "pikachu", + "height": 4, + "weight": 60, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/25.png", + "types": [ + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/pikachu" + }, + { + "number": 26, + "name": "raichu", + "height": 8, + "weight": 300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/26.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/26.png", + "types": [ + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/raichu" + }, + { + "number": 27, + "name": "sandshrew", + "height": 6, + "weight": 120, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/27.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/27.png", + "types": [ + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/sandshrew" + }, + { + "number": 28, + "name": "sandslash", + "height": 10, + "weight": 295, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/28.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/28.png", + "types": [ + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/sandslash" + }, + { + "number": 29, + "name": "nidoran-f", + "height": 4, + "weight": 70, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/29.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/29.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/nidoran-f" + }, + { + "number": 30, + "name": "nidorina", + "height": 8, + "weight": 200, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/30.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/30.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/nidorina" + }, + { + "number": 31, + "name": "nidoqueen", + "height": 13, + "weight": 600, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/31.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/31.png", + "types": [ + "ground", + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/nidoqueen" + }, + { + "number": 32, + "name": "nidoran-m", + "height": 5, + "weight": 90, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/32.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/32.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/nidoran-m" + }, + { + "number": 33, + "name": "nidorino", + "height": 9, + "weight": 195, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/33.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/33.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/nidorino" + }, + { + "number": 34, + "name": "nidoking", + "height": 14, + "weight": 620, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/34.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/34.png", + "types": [ + "ground", + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/nidoking" + }, + { + "number": 35, + "name": "clefairy", + "height": 6, + "weight": 75, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/35.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/35.png", + "types": [ + "fairy" + ], + "url": "https://pokemon.fandom.com/wiki/clefairy" + }, + { + "number": 36, + "name": "clefable", + "height": 13, + "weight": 400, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/36.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/36.png", + "types": [ + "fairy" + ], + "url": "https://pokemon.fandom.com/wiki/clefable" + }, + { + "number": 37, + "name": "vulpix", + "height": 6, + "weight": 99, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/37.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/37.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/vulpix" + }, + { + "number": 38, + "name": "ninetales", + "height": 11, + "weight": 199, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/38.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/38.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/ninetales" + }, + { + "number": 39, + "name": "jigglypuff", + "height": 5, + "weight": 55, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/39.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/39.png", + "types": [ + "fairy", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/jigglypuff" + }, + { + "number": 40, + "name": "wigglytuff", + "height": 10, + "weight": 120, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/40.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/40.png", + "types": [ + "fairy", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/wigglytuff" + }, + { + "number": 41, + "name": "zubat", + "height": 8, + "weight": 75, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/41.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/41.png", + "types": [ + "flying", + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/zubat" + }, + { + "number": 42, + "name": "golbat", + "height": 16, + "weight": 550, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/42.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/42.png", + "types": [ + "flying", + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/golbat" + }, + { + "number": 43, + "name": "oddish", + "height": 5, + "weight": 54, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/43.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/43.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/oddish" + }, + { + "number": 44, + "name": "gloom", + "height": 8, + "weight": 86, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/44.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/44.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/gloom" + }, + { + "number": 45, + "name": "vileplume", + "height": 12, + "weight": 186, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/45.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/45.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/vileplume" + }, + { + "number": 46, + "name": "paras", + "height": 3, + "weight": 54, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/46.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/46.png", + "types": [ + "grass", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/paras" + }, + { + "number": 47, + "name": "parasect", + "height": 10, + "weight": 295, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/47.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/47.png", + "types": [ + "grass", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/parasect" + }, + { + "number": 48, + "name": "venonat", + "height": 10, + "weight": 300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/48.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/48.png", + "types": [ + "poison", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/venonat" + }, + { + "number": 49, + "name": "venomoth", + "height": 15, + "weight": 125, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/49.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/49.png", + "types": [ + "poison", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/venomoth" + }, + { + "number": 50, + "name": "diglett", + "height": 2, + "weight": 8, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/50.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/50.png", + "types": [ + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/diglett" + }, + { + "number": 51, + "name": "dugtrio", + "height": 7, + "weight": 333, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/51.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/51.png", + "types": [ + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/dugtrio" + }, + { + "number": 52, + "name": "meowth", + "height": 4, + "weight": 42, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/52.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/52.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/meowth" + }, + { + "number": 53, + "name": "persian", + "height": 10, + "weight": 320, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/53.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/53.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/persian" + }, + { + "number": 54, + "name": "psyduck", + "height": 8, + "weight": 196, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/54.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/54.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/psyduck" + }, + { + "number": 55, + "name": "golduck", + "height": 17, + "weight": 766, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/55.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/55.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/golduck" + }, + { + "number": 56, + "name": "mankey", + "height": 5, + "weight": 280, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/56.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/56.png", + "types": [ + "fighting" + ], + "url": "https://pokemon.fandom.com/wiki/mankey" + }, + { + "number": 57, + "name": "primeape", + "height": 10, + "weight": 320, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/57.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/57.png", + "types": [ + "fighting" + ], + "url": "https://pokemon.fandom.com/wiki/primeape" + }, + { + "number": 58, + "name": "growlithe", + "height": 7, + "weight": 190, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/58.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/58.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/growlithe" + }, + { + "number": 59, + "name": "arcanine", + "height": 19, + "weight": 1550, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/59.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/59.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/arcanine" + }, + { + "number": 60, + "name": "poliwag", + "height": 6, + "weight": 124, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/60.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/60.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/poliwag" + }, + { + "number": 61, + "name": "poliwhirl", + "height": 10, + "weight": 200, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/61.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/61.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/poliwhirl" + }, + { + "number": 62, + "name": "poliwrath", + "height": 13, + "weight": 540, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/62.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/62.png", + "types": [ + "fighting", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/poliwrath" + }, + { + "number": 63, + "name": "abra", + "height": 9, + "weight": 195, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/63.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/63.png", + "types": [ + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/abra" + }, + { + "number": 64, + "name": "kadabra", + "height": 13, + "weight": 565, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/64.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/64.png", + "types": [ + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/kadabra" + }, + { + "number": 65, + "name": "alakazam", + "height": 15, + "weight": 480, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/65.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/65.png", + "types": [ + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/alakazam" + }, + { + "number": 66, + "name": "machop", + "height": 8, + "weight": 195, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/66.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/66.png", + "types": [ + "fighting" + ], + "url": "https://pokemon.fandom.com/wiki/machop" + }, + { + "number": 67, + "name": "machoke", + "height": 15, + "weight": 705, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/67.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/67.png", + "types": [ + "fighting" + ], + "url": "https://pokemon.fandom.com/wiki/machoke" + }, + { + "number": 68, + "name": "machamp", + "height": 16, + "weight": 1300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/68.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/68.png", + "types": [ + "fighting" + ], + "url": "https://pokemon.fandom.com/wiki/machamp" + }, + { + "number": 69, + "name": "bellsprout", + "height": 7, + "weight": 40, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/69.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/69.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/bellsprout" + }, + { + "number": 70, + "name": "weepinbell", + "height": 10, + "weight": 64, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/70.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/70.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/weepinbell" + }, + { + "number": 71, + "name": "victreebel", + "height": 17, + "weight": 155, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/71.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/71.png", + "types": [ + "poison", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/victreebel" + }, + { + "number": 72, + "name": "tentacool", + "height": 9, + "weight": 455, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/72.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/72.png", + "types": [ + "poison", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/tentacool" + }, + { + "number": 73, + "name": "tentacruel", + "height": 16, + "weight": 550, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/73.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/73.png", + "types": [ + "poison", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/tentacruel" + }, + { + "number": 74, + "name": "geodude", + "height": 4, + "weight": 200, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/74.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/74.png", + "types": [ + "ground", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/geodude" + }, + { + "number": 75, + "name": "graveler", + "height": 10, + "weight": 1050, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/75.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/75.png", + "types": [ + "ground", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/graveler" + }, + { + "number": 76, + "name": "golem", + "height": 14, + "weight": 3000, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/76.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/76.png", + "types": [ + "ground", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/golem" + }, + { + "number": 77, + "name": "ponyta", + "height": 10, + "weight": 300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/77.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/77.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/ponyta" + }, + { + "number": 78, + "name": "rapidash", + "height": 17, + "weight": 950, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/78.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/78.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/rapidash" + }, + { + "number": 79, + "name": "slowpoke", + "height": 12, + "weight": 360, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/79.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/79.png", + "types": [ + "psychic", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/slowpoke" + }, + { + "number": 80, + "name": "slowbro", + "height": 16, + "weight": 785, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/80.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/80.png", + "types": [ + "psychic", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/slowbro" + }, + { + "number": 81, + "name": "magnemite", + "height": 3, + "weight": 60, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/81.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/81.png", + "types": [ + "steel", + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/magnemite" + }, + { + "number": 82, + "name": "magneton", + "height": 10, + "weight": 600, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/82.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/82.png", + "types": [ + "steel", + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/magneton" + }, + { + "number": 83, + "name": "farfetchd", + "height": 8, + "weight": 150, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/83.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/83.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/farfetchd" + }, + { + "number": 84, + "name": "doduo", + "height": 14, + "weight": 392, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/84.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/84.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/doduo" + }, + { + "number": 85, + "name": "dodrio", + "height": 18, + "weight": 852, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/85.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/85.png", + "types": [ + "flying", + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/dodrio" + }, + { + "number": 86, + "name": "seel", + "height": 11, + "weight": 900, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/86.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/86.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/seel" + }, + { + "number": 87, + "name": "dewgong", + "height": 17, + "weight": 1200, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/87.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/87.png", + "types": [ + "ice", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/dewgong" + }, + { + "number": 88, + "name": "grimer", + "height": 9, + "weight": 300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/88.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/88.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/grimer" + }, + { + "number": 89, + "name": "muk", + "height": 12, + "weight": 300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/89.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/89.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/muk" + }, + { + "number": 90, + "name": "shellder", + "height": 3, + "weight": 40, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/90.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/90.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/shellder" + }, + { + "number": 91, + "name": "cloyster", + "height": 15, + "weight": 1325, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/91.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/91.png", + "types": [ + "ice", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/cloyster" + }, + { + "number": 92, + "name": "gastly", + "height": 13, + "weight": 1, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/92.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/92.png", + "types": [ + "poison", + "ghost" + ], + "url": "https://pokemon.fandom.com/wiki/gastly" + }, + { + "number": 93, + "name": "haunter", + "height": 16, + "weight": 1, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/93.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/93.png", + "types": [ + "poison", + "ghost" + ], + "url": "https://pokemon.fandom.com/wiki/haunter" + }, + { + "number": 94, + "name": "gengar", + "height": 15, + "weight": 405, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/94.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/94.png", + "types": [ + "poison", + "ghost" + ], + "url": "https://pokemon.fandom.com/wiki/gengar" + }, + { + "number": 95, + "name": "onix", + "height": 88, + "weight": 2100, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/95.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/95.png", + "types": [ + "ground", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/onix" + }, + { + "number": 96, + "name": "drowzee", + "height": 10, + "weight": 324, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/96.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/96.png", + "types": [ + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/drowzee" + }, + { + "number": 97, + "name": "hypno", + "height": 16, + "weight": 756, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/97.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/97.png", + "types": [ + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/hypno" + }, + { + "number": 98, + "name": "krabby", + "height": 4, + "weight": 65, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/98.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/98.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/krabby" + }, + { + "number": 99, + "name": "kingler", + "height": 13, + "weight": 600, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/99.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/99.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/kingler" + }, + { + "number": 100, + "name": "voltorb", + "height": 5, + "weight": 104, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/100.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/100.png", + "types": [ + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/voltorb" + }, + { + "number": 101, + "name": "electrode", + "height": 12, + "weight": 666, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/101.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/101.png", + "types": [ + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/electrode" + }, + { + "number": 102, + "name": "exeggcute", + "height": 4, + "weight": 25, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/102.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/102.png", + "types": [ + "psychic", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/exeggcute" + }, + { + "number": 103, + "name": "exeggutor", + "height": 20, + "weight": 1200, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/103.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/103.png", + "types": [ + "psychic", + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/exeggutor" + }, + { + "number": 104, + "name": "cubone", + "height": 4, + "weight": 65, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/104.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/104.png", + "types": [ + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/cubone" + }, + { + "number": 105, + "name": "marowak", + "height": 10, + "weight": 450, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/105.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/105.png", + "types": [ + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/marowak" + }, + { + "number": 106, + "name": "hitmonlee", + "height": 15, + "weight": 498, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/106.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/106.png", + "types": [ + "fighting" + ], + "url": "https://pokemon.fandom.com/wiki/hitmonlee" + }, + { + "number": 107, + "name": "hitmonchan", + "height": 14, + "weight": 502, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/107.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/107.png", + "types": [ + "fighting" + ], + "url": "https://pokemon.fandom.com/wiki/hitmonchan" + }, + { + "number": 108, + "name": "lickitung", + "height": 12, + "weight": 655, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/108.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/108.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/lickitung" + }, + { + "number": 109, + "name": "koffing", + "height": 6, + "weight": 10, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/109.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/109.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/koffing" + }, + { + "number": 110, + "name": "weezing", + "height": 12, + "weight": 95, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/110.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/110.png", + "types": [ + "poison" + ], + "url": "https://pokemon.fandom.com/wiki/weezing" + }, + { + "number": 111, + "name": "rhyhorn", + "height": 10, + "weight": 1150, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/111.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/111.png", + "types": [ + "rock", + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/rhyhorn" + }, + { + "number": 112, + "name": "rhydon", + "height": 19, + "weight": 1200, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/112.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/112.png", + "types": [ + "rock", + "ground" + ], + "url": "https://pokemon.fandom.com/wiki/rhydon" + }, + { + "number": 113, + "name": "chansey", + "height": 11, + "weight": 346, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/113.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/113.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/chansey" + }, + { + "number": 114, + "name": "tangela", + "height": 10, + "weight": 350, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/114.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/114.png", + "types": [ + "grass" + ], + "url": "https://pokemon.fandom.com/wiki/tangela" + }, + { + "number": 115, + "name": "kangaskhan", + "height": 22, + "weight": 800, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/115.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/115.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/kangaskhan" + }, + { + "number": 116, + "name": "horsea", + "height": 4, + "weight": 80, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/116.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/116.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/horsea" + }, + { + "number": 117, + "name": "seadra", + "height": 12, + "weight": 250, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/117.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/117.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/seadra" + }, + { + "number": 118, + "name": "goldeen", + "height": 6, + "weight": 150, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/118.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/118.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/goldeen" + }, + { + "number": 119, + "name": "seaking", + "height": 13, + "weight": 390, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/119.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/119.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/seaking" + }, + { + "number": 120, + "name": "staryu", + "height": 8, + "weight": 345, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/120.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/120.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/staryu" + }, + { + "number": 121, + "name": "starmie", + "height": 11, + "weight": 800, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/121.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/121.png", + "types": [ + "psychic", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/starmie" + }, + { + "number": 122, + "name": "mr-mime", + "height": 13, + "weight": 545, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/122.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/122.png", + "types": [ + "fairy", + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/mr-mime" + }, + { + "number": 123, + "name": "scyther", + "height": 15, + "weight": 560, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/123.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/123.png", + "types": [ + "flying", + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/scyther" + }, + { + "number": 124, + "name": "jynx", + "height": 14, + "weight": 406, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/124.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/124.png", + "types": [ + "psychic", + "ice" + ], + "url": "https://pokemon.fandom.com/wiki/jynx" + }, + { + "number": 125, + "name": "electabuzz", + "height": 11, + "weight": 300, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/125.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/125.png", + "types": [ + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/electabuzz" + }, + { + "number": 126, + "name": "magmar", + "height": 13, + "weight": 445, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/126.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/126.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/magmar" + }, + { + "number": 127, + "name": "pinsir", + "height": 15, + "weight": 550, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/127.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/127.png", + "types": [ + "bug" + ], + "url": "https://pokemon.fandom.com/wiki/pinsir" + }, + { + "number": 128, + "name": "tauros", + "height": 14, + "weight": 884, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/128.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/128.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/tauros" + }, + { + "number": 129, + "name": "magikarp", + "height": 9, + "weight": 100, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/129.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/129.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/magikarp" + }, + { + "number": 130, + "name": "gyarados", + "height": 65, + "weight": 2350, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/130.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/130.png", + "types": [ + "flying", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/gyarados" + }, + { + "number": 131, + "name": "lapras", + "height": 25, + "weight": 2200, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/131.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/131.png", + "types": [ + "ice", + "water" + ], + "url": "https://pokemon.fandom.com/wiki/lapras" + }, + { + "number": 132, + "name": "ditto", + "height": 3, + "weight": 40, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/132.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/ditto" + }, + { + "number": 133, + "name": "eevee", + "height": 3, + "weight": 65, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/133.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/133.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/eevee" + }, + { + "number": 134, + "name": "vaporeon", + "height": 10, + "weight": 290, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/134.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/134.png", + "types": [ + "water" + ], + "url": "https://pokemon.fandom.com/wiki/vaporeon" + }, + { + "number": 135, + "name": "jolteon", + "height": 8, + "weight": 245, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/135.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/135.png", + "types": [ + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/jolteon" + }, + { + "number": 136, + "name": "flareon", + "height": 9, + "weight": 250, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/136.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/136.png", + "types": [ + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/flareon" + }, + { + "number": 137, + "name": "porygon", + "height": 8, + "weight": 365, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/137.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/137.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/porygon" + }, + { + "number": 138, + "name": "omanyte", + "height": 4, + "weight": 75, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/138.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/138.png", + "types": [ + "water", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/omanyte" + }, + { + "number": 139, + "name": "omastar", + "height": 10, + "weight": 350, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/139.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/139.png", + "types": [ + "water", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/omastar" + }, + { + "number": 140, + "name": "kabuto", + "height": 5, + "weight": 115, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/140.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/140.png", + "types": [ + "water", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/kabuto" + }, + { + "number": 141, + "name": "kabutops", + "height": 13, + "weight": 405, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/141.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/141.png", + "types": [ + "water", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/kabutops" + }, + { + "number": 142, + "name": "aerodactyl", + "height": 18, + "weight": 590, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/142.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/142.png", + "types": [ + "flying", + "rock" + ], + "url": "https://pokemon.fandom.com/wiki/aerodactyl" + }, + { + "number": 143, + "name": "snorlax", + "height": 21, + "weight": 4600, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/143.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/143.png", + "types": [ + "normal" + ], + "url": "https://pokemon.fandom.com/wiki/snorlax" + }, + { + "number": 144, + "name": "articuno", + "height": 17, + "weight": 554, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/144.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/144.png", + "types": [ + "flying", + "ice" + ], + "url": "https://pokemon.fandom.com/wiki/articuno" + }, + { + "number": 145, + "name": "zapdos", + "height": 16, + "weight": 526, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/145.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/145.png", + "types": [ + "flying", + "electric" + ], + "url": "https://pokemon.fandom.com/wiki/zapdos" + }, + { + "number": 146, + "name": "moltres", + "height": 20, + "weight": 600, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/146.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/146.png", + "types": [ + "flying", + "fire" + ], + "url": "https://pokemon.fandom.com/wiki/moltres" + }, + { + "number": 147, + "name": "dratini", + "height": 18, + "weight": 33, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/147.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/147.png", + "types": [ + "dragon" + ], + "url": "https://pokemon.fandom.com/wiki/dratini" + }, + { + "number": 148, + "name": "dragonair", + "height": 40, + "weight": 165, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/148.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/148.png", + "types": [ + "dragon" + ], + "url": "https://pokemon.fandom.com/wiki/dragonair" + }, + { + "number": 149, + "name": "dragonite", + "height": 22, + "weight": 2100, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/149.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/149.png", + "types": [ + "flying", + "dragon" + ], + "url": "https://pokemon.fandom.com/wiki/dragonite" + }, + { + "number": 150, + "name": "mewtwo", + "height": 20, + "weight": 1220, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/150.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/150.png", + "types": [ + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/mewtwo" + }, + { + "number": 151, + "name": "mew", + "height": 4, + "weight": 40, + "image_front": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/151.png", + "image_back": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/151.png", + "types": [ + "psychic" + ], + "url": "https://pokemon.fandom.com/wiki/mew" + } + ] +} + diff --git a/Code/Richard/django/pokedex/project_pokedex/__init__.py b/Code/Richard/django/pokedex/project_pokedex/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Code/Richard/django/pokedex/project_pokedex/asgi.py b/Code/Richard/django/pokedex/project_pokedex/asgi.py new file mode 100644 index 00000000..545a07d4 --- /dev/null +++ b/Code/Richard/django/pokedex/project_pokedex/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for project_pokedex project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_pokedex.settings') + +application = get_asgi_application() diff --git a/Code/Richard/django/pokedex/project_pokedex/settings.py b/Code/Richard/django/pokedex/project_pokedex/settings.py new file mode 100644 index 00000000..19f863f5 --- /dev/null +++ b/Code/Richard/django/pokedex/project_pokedex/settings.py @@ -0,0 +1,127 @@ +""" +Django settings for project_pokedex project. + +Generated by 'django-admin startproject' using Django 4.0.3. + +For more information on this file, see +https://docs.djangoproject.com/en/4.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/4.0/ref/settings/ +""" + +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-rp$d6n1&1eaj$%myj*ok8$wpkt7b+q(h$3=i+p&&n6)ggqm80s' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'users', + 'pokedex_app' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'project_pokedex.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'project_pokedex.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/4.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/4.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'America/Indiana/Knox' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/4.0/howto/static-files/ + +STATIC_URL = 'static/' + +# Default primary key field type +# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +AUTH_USER_MODEL = 'users.User' diff --git a/Code/Richard/django/pokedex/project_pokedex/urls.py b/Code/Richard/django/pokedex/project_pokedex/urls.py new file mode 100644 index 00000000..9523aad7 --- /dev/null +++ b/Code/Richard/django/pokedex/project_pokedex/urls.py @@ -0,0 +1,23 @@ +"""project_pokedex URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/4.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('users/', include('users.urls')), + #path('pokedex_app/', include('pokedex_app.urls')) +] diff --git a/Code/Richard/django/pokedex/project_pokedex/wsgi.py b/Code/Richard/django/pokedex/project_pokedex/wsgi.py new file mode 100644 index 00000000..e6fa89da --- /dev/null +++ b/Code/Richard/django/pokedex/project_pokedex/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for project_pokedex project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_pokedex.settings') + +application = get_wsgi_application() diff --git a/Code/Richard/django/pokedex/users/__init__.py b/Code/Richard/django/pokedex/users/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Code/Richard/django/pokedex/users/admin.py b/Code/Richard/django/pokedex/users/admin.py new file mode 100644 index 00000000..f9c70572 --- /dev/null +++ b/Code/Richard/django/pokedex/users/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from django.contrib.auth.admin import UserAdmin +from .models import User + +# Register your models here. + +admin.site.register(User, UserAdmin) diff --git a/Code/Richard/django/pokedex/users/apps.py b/Code/Richard/django/pokedex/users/apps.py new file mode 100644 index 00000000..72b14010 --- /dev/null +++ b/Code/Richard/django/pokedex/users/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UsersConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'users' diff --git a/Code/Richard/django/pokedex/users/migrations/0001_initial.py b/Code/Richard/django/pokedex/users/migrations/0001_initial.py new file mode 100644 index 00000000..fa94e26d --- /dev/null +++ b/Code/Richard/django/pokedex/users/migrations/0001_initial.py @@ -0,0 +1,44 @@ +# Generated by Django 4.0.3 on 2022-03-10 01:29 + +import django.contrib.auth.models +import django.contrib.auth.validators +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + ] diff --git a/Code/Richard/django/pokedex/users/migrations/__init__.py b/Code/Richard/django/pokedex/users/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Code/Richard/django/pokedex/users/models.py b/Code/Richard/django/pokedex/users/models.py new file mode 100644 index 00000000..5edbbe79 --- /dev/null +++ b/Code/Richard/django/pokedex/users/models.py @@ -0,0 +1,9 @@ +from django.db import models +from django.contrib.auth.models import AbstractUser + +class User(AbstractUser): + pass + +# Create your models here. +def __str__(self): + return self.username \ No newline at end of file diff --git a/Code/Richard/django/pokedex/users/templates/users/home.html b/Code/Richard/django/pokedex/users/templates/users/home.html new file mode 100644 index 00000000..12d3688c --- /dev/null +++ b/Code/Richard/django/pokedex/users/templates/users/home.html @@ -0,0 +1,24 @@ + + + + + + + + Document + + + +
+

Pokedex

+
+ {% for pokemon in my_pokemon %} +
  • {{ pokemon.name }}, Height: {{pokemon.height}} Weight: {{ pokemon.weight}}
    + Pokemon Type:
    {% for type in pokemon.types.all %} {{ type }}
    {% endfor %}
    + Pokemon front + Pokemon back +
  • + {% endfor %} + + + \ No newline at end of file diff --git a/Code/Richard/django/pokedex/users/tests.py b/Code/Richard/django/pokedex/users/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/Code/Richard/django/pokedex/users/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Code/Richard/django/pokedex/users/urls.py b/Code/Richard/django/pokedex/users/urls.py new file mode 100644 index 00000000..f2dbd81b --- /dev/null +++ b/Code/Richard/django/pokedex/users/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + +app_name= 'users' +urlpatterns=[ + path('', views.pokedex_view, name='pokedex_view') +] diff --git a/Code/Richard/django/pokedex/users/views.py b/Code/Richard/django/pokedex/users/views.py new file mode 100644 index 00000000..6cd1be0b --- /dev/null +++ b/Code/Richard/django/pokedex/users/views.py @@ -0,0 +1,12 @@ +from django.shortcuts import render +from django.http import HttpResponse +from pokedex_app.models import Pokemon, PokemonType + +# Create your views here. + +def pokedex_view(request): + my_pokemon=Pokemon.objects.all() + context= { + 'my_pokemon':my_pokemon + } + return render(request, 'users/home.html', context) \ No newline at end of file