This commit is contained in:
2023-09-24 17:16:25 -04:00
commit 91d67e7aeb
130 changed files with 10480 additions and 0 deletions

View File

@ -0,0 +1,83 @@
"""
Django settings for debugging_project project.
For more information on this file, see
https://docs.djangoproject.com/en/1.7/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.7/ref/settings/
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'gr6(3zd1pbpgs(99#6g^+)=h6w7yqp38dib9pli08)(1z_24+)'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_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',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'debugging_project.urls'
WSGI_APPLICATION = 'debugging_project.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/
STATIC_URL = '/static/'

View File

@ -0,0 +1,10 @@
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'debugging_project.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
)

View File

@ -0,0 +1,14 @@
"""
WSGI config for debugging_project 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/1.7/howto/deployment/wsgi/
"""
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "debugging_project.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

View File

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

View File

@ -0,0 +1,28 @@
from django.core.exceptions import ValidationError
class Players(models.Model):
username = models.CharField(max_length = 30)
password = models.CharField(max_length = 30)
email = models.CharField(max_length = 50)
created_at = models.DateTimeField('date created')
def clean(self):
if(len(self.password) < 8):
raise ValidationError("password too short")
email_validator = re.compile('^[A-Z0-9-.]+[a-z0-9-]+[a-zA-Z]{4,}$')
if(email_validator.match(self.email) == None):
raise ValidationError("invalid email")
def save(self, **kwargs):
self.full_clean()
return super(Players, self).save(**kwargs)
class Heroes(models.Model):
player = ForeignKey(Players)
name = models.CharField(max_length = 20)
type = models.CharField()
strength = models.IntegerField(default=10)
class Teams(models.Model):
name = models.CharField()
heroes = ManyToManyField(Hero)

View File

@ -0,0 +1,56 @@
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from faker import Factory
import random
from app.models import Players, Heroes
class SeedDatabase:
def __init__(self, **kwargs):
self.fake = Factory.create()
self.player_num = kwargs[players]
self.hero_num = kwargs[heroes]
self.team_num = kwargs[teams]
player_seed = Seed.seed_players()
hero_seed = Seed.seed_heroes()
team_seed = Seed.seed_teams()
if(player_seed == True) and (hero_seed == True) and (team_seed == True):
print("Success!")
def seed_players():
for i in self.player_num:
Players.create(username = ''.split(self.fake.name())[1],\
password = random_password(),\
email = self.fake.email(),\
created_at = __random_datetime())
return True
def seed_heroes():
for i in self.hero_num:
Heroes.create(name = self.fake.text().split()[3],\
type = self.__random_hero(),\
strength = random.randrange(6,55),\
player = self.__random_player())
return True
def seed_teams():
for i in self.team_num:
team = Teams.create(name = self.fake.company())
for j in random.randrange(3,12):
team.heroes.add(self.__random_hero())
return True
def __random_password():
return ''.join(random.sample(string.ascii_lowercase, random.randrange(4,14)))
def __random_datetime():
return datetime.now() - datetime.timedelta(random.randrange(2,3123))
def __random_hero_type():
types = ['Wizard', 'Warrior', 'Ranger', 'Druid', 'Shaman', 'Bard']
return ''.join(random.sample(heroes, 1))
def __random_player():
return Players.objects.filter(pk=random.randrange(1,self.player_num))
def __random_hero():
return Heroes.objects.filter(pk=random.randrange(1,self.hero_num))

View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

View File

@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.

View File

@ -0,0 +1,10 @@
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "debugging_project.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)