init
This commit is contained in:
commit
4fcbdaa4db
21 changed files with 589 additions and 0 deletions
0
server/__init__.py
Normal file
0
server/__init__.py
Normal file
13
server/admin.py
Normal file
13
server/admin.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from server.models import Dragon
|
||||
|
||||
|
||||
@admin.register(Dragon)
|
||||
class DragonAdmin(admin.ModelAdmin):
|
||||
model = Dragon
|
||||
list_display = ['name', 'origin', 'color', 'hat', 'shirt', 'decor']
|
||||
|
||||
fieldsets = [
|
||||
(None, {'fields': ['name', 'origin', 'color', 'hat', 'shirt', 'decor']}),
|
||||
]
|
6
server/apps.py
Normal file
6
server/apps.py
Normal file
|
@ -0,0 +1,6 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class ServerConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'server'
|
26
server/migrations/0001_initial.py
Normal file
26
server/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Generated by Django 5.1.3 on 2025-04-11 15:26
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Dragon',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=10)),
|
||||
('origin', models.CharField(max_length=10)),
|
||||
('color', models.IntegerField(default=-1)),
|
||||
('hat', models.IntegerField(default=-1)),
|
||||
('shirt', models.IntegerField(default=-1)),
|
||||
('decor', models.IntegerField(default=-1)),
|
||||
],
|
||||
),
|
||||
]
|
17
server/migrations/0002_alter_dragon_unique_together.py
Normal file
17
server/migrations/0002_alter_dragon_unique_together.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Generated by Django 5.1.7 on 2025-04-11 16:40
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('server', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='dragon',
|
||||
unique_together={('origin', 'name', 'color', 'shirt', 'hat', 'decor')},
|
||||
),
|
||||
]
|
0
server/migrations/__init__.py
Normal file
0
server/migrations/__init__.py
Normal file
17
server/models.py
Normal file
17
server/models.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
from django.db import models
|
||||
|
||||
|
||||
class Dragon(models.Model):
|
||||
class Meta:
|
||||
unique_together = ('origin', 'name', 'color', 'shirt', 'hat', 'decor')
|
||||
|
||||
name = models.CharField(max_length=10)
|
||||
origin = models.CharField(max_length=10)
|
||||
|
||||
color = models.IntegerField(default=-1)
|
||||
hat = models.IntegerField(default=-1)
|
||||
shirt = models.IntegerField(default=-1)
|
||||
decor = models.IntegerField(default=-1)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}: {self.origin}, {self.color}, {self.hat}, {self.shirt}, {self.decor}'
|
3
server/tests.py
Normal file
3
server/tests.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
8
server/urls.py
Normal file
8
server/urls.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
from django.urls import path
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
path('add/<str:origin>/<str:name>/<str:color>/<str:shirt>/<str:hat>/<str:decor>/', views.add, name='add'),
|
||||
path('get/<str:origin>/', views.get, name='get'),
|
||||
]
|
36
server/views.py
Normal file
36
server/views.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
import json
|
||||
import random
|
||||
|
||||
from django.db import IntegrityError
|
||||
from django.http import HttpResponse, Http404
|
||||
|
||||
from server.models import Dragon
|
||||
|
||||
|
||||
def add(request, origin, name, color, shirt, hat, decor):
|
||||
origin = origin.strip()
|
||||
name = name.strip()
|
||||
color = int(color.strip())
|
||||
shirt = int(shirt.strip())
|
||||
hat = int(hat.strip())
|
||||
decor = int(decor.strip())
|
||||
|
||||
try:
|
||||
dragon = Dragon.objects.create(origin=origin, name=name, color=color, shirt=shirt, hat=hat, decor=decor)
|
||||
print(f'Received dragon ({dragon})')
|
||||
except IntegrityError:
|
||||
print('Dragon already exists')
|
||||
return HttpResponse('')
|
||||
|
||||
|
||||
def get(request, origin):
|
||||
items = list(Dragon.objects.all().exclude(origin=origin))
|
||||
if len(items) == 0:
|
||||
print('hey')
|
||||
raise Http404
|
||||
|
||||
random_item: Dragon = random.choice(items)
|
||||
|
||||
response_data = {'origin': random_item.origin, 'name': random_item.name, 'color': random_item.color,
|
||||
'shirt': random_item.shirt, 'hat': random_item.hat, 'decor': random_item.decor}
|
||||
return HttpResponse(json.dumps(response_data), content_type="application/json")
|
Loading…
Add table
Add a link
Reference in a new issue