Add 'records' Django app with basic models generated by Django "python manage.py inspectdb"
Add 'diggersdigest' Django project
--- /dev/null
+mysql/*
+static/*
\ No newline at end of file
--- /dev/null
+*.py[co]
+*~
+
+# Packages
+*.egg
+*.egg-info
+#dist
+build
+eggs
+parts
+bin
+var
+sdist
+develop-eggs
+.installed.cfg
+*.directory
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+.coverage
+.tox
+
+#Translations
+#*.mo
+
+#Volume Directory for docker-compose
+mysql/
\ No newline at end of file
--- /dev/null
+FROM python:2.7
+
+ENV PYTHONUNBUFFERED 1
+RUN apt-get update &&\
+ apt-get -y install locales && \
+ echo fr_FR.UTF-8 UTF-8 >> /etc/locale.gen &&\
+ locale-gen
+ENV LANG fr_FR.UTF-8
+ENV LANGUAGE fr_FR:fr
+ENV LC_ALL fr_FR.UTF-8
+
+RUN mkdir /code
+WORKDIR /code
+ADD requirements.txt /code/
+RUN pip install -r requirements.txt
+ADD . /code/
+
--- /dev/null
+"""
+Django settings for diggersdigest project.
+
+Generated by 'django-admin startproject' using Django 1.8.3.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.8/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/1.8/ref/settings/
+"""
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+import os
+
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'k#y*6^1y18xlm)y#i&v6!s26i1hgttz64&!--7ft3q-c!22y(%'
+
+# 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',
+ 'records',
+)
+
+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',
+ 'django.middleware.security.SecurityMiddleware',
+)
+
+ROOT_URLCONF = 'diggersdigest.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 = 'diggersdigest.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
+
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.mysql',
+ 'NAME': 'diggersdigest',
+ 'USER': 'digger',
+ 'PASSWORD': 'admin',
+ 'HOST': 'db',
+ 'PORT': 3306,
+ }
+}
+
+# Internationalization
+# https://docs.djangoproject.com/en/1.8/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.8/howto/static-files/
+
+STATIC_URL = '/static/'
--- /dev/null
+"""diggersdigest URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+ https://docs.djangoproject.com/en/1.8/topics/http/urls/
+Examples:
+Function views
+ 1. Add an import: from my_app import views
+ 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
+Class-based views
+ 1. Add an import: from other_app.views import Home
+ 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
+Including another URLconf
+ 1. Add an import: from blog import urls as blog_urls
+ 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls))
+"""
+from django.conf.urls import include, url
+from django.contrib import admin
+
+urlpatterns = [
+ url(r'^admin/', include(admin.site.urls)),
+]
--- /dev/null
+"""
+WSGI config for diggersdigest 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.8/howto/deployment/wsgi/
+"""
+
+import os
+
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "diggersdigest.settings")
+
+application = get_wsgi_application()
--- /dev/null
+#!/usr/bin/env python
+import os
+import sys
+
+if __name__ == "__main__":
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "diggersdigest.settings")
+
+ from django.core.management import execute_from_command_line
+
+ execute_from_command_line(sys.argv)
--- /dev/null
+from django.contrib import admin
+
+# Register your models here.
+from .models import Gallery
+from .models import Grading
+from .models import Link
+from .models import Mix
+from .models import News
+from .models import Shop
+from .models import Theme
+from .models import User
+## from .models import Artist
+## from .models import Label
+## from .models import Country
+## from .models import Record
+
+
+
+admin.site.register(Gallery)
+admin.site.register(Grading)
+admin.site.register(Link)
+admin.site.register(Mix)
+admin.site.register(News)
+admin.site.register(Shop)
+admin.site.register(Theme)
+admin.site.register(User)
+## admin.site.register(Artist)
+## admin.site.register(Label)
+## admin.site.register(Country)
+## admin.site.register(Record)
--- /dev/null
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Gallery',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('titre', models.CharField(max_length=124)),
+ ('visu1', models.IntegerField()),
+ ('visu2', models.IntegerField()),
+ ('visu3', models.IntegerField()),
+ ('visu4', models.IntegerField()),
+ ('visu5', models.IntegerField()),
+ ('visu6', models.IntegerField()),
+ ('visu7', models.IntegerField()),
+ ('visu8', models.IntegerField()),
+ ('visu9', models.IntegerField()),
+ ('ordre', models.IntegerField()),
+ ('published', models.IntegerField()),
+ ],
+ options={
+ 'db_table': 'gallery',
+ 'managed': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Grading',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('nom', models.CharField(max_length=5)),
+ ],
+ options={
+ 'db_table': 'grading',
+ 'managed': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Link',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('section', models.IntegerField()),
+ ('adress', models.CharField(max_length=124)),
+ ('desc', models.TextField()),
+ ('ordre', models.IntegerField()),
+ ('published', models.IntegerField()),
+ ],
+ options={
+ 'db_table': 'links',
+ 'managed': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Mix',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('genre', models.CharField(max_length=128)),
+ ('titre', models.CharField(max_length=128)),
+ ('date', models.CharField(max_length=64)),
+ ('desc', models.TextField()),
+ ('mp3', models.CharField(max_length=128)),
+ ('visu1', models.IntegerField()),
+ ('ordre', models.IntegerField()),
+ ('published', models.IntegerField()),
+ ],
+ options={
+ 'db_table': 'mix',
+ 'managed': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='News',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('titre', models.CharField(max_length=128)),
+ ('texte', models.TextField()),
+ ('visu1', models.IntegerField()),
+ ('position', models.IntegerField()),
+ ('nomlien', models.CharField(max_length=128)),
+ ('adresslien', models.CharField(max_length=255)),
+ ('typelien', models.IntegerField()),
+ ('ordre', models.IntegerField()),
+ ('published', models.IntegerField()),
+ ],
+ options={
+ 'db_table': 'news',
+ 'managed': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Shop',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('theme', models.IntegerField()),
+ ('artiste', models.CharField(max_length=128)),
+ ('new', models.IntegerField()),
+ ('titre', models.CharField(max_length=128)),
+ ('label', models.CharField(max_length=128)),
+ ('date', models.CharField(max_length=8)),
+ ('pays', models.CharField(max_length=128)),
+ ('desc', models.TextField()),
+ ('cover', models.IntegerField()),
+ ('vinyl', models.IntegerField()),
+ ('prix', models.IntegerField()),
+ ('devise', models.IntegerField()),
+ ('mp3', models.CharField(max_length=128)),
+ ('visu1', models.IntegerField()),
+ ('ordre', models.IntegerField()),
+ ('published', models.IntegerField()),
+ ],
+ options={
+ 'db_table': 'shop',
+ 'managed': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Theme',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('nom', models.CharField(max_length=124)),
+ ('ordre', models.IntegerField()),
+ ('published', models.IntegerField()),
+ ],
+ options={
+ 'db_table': 'theme',
+ 'managed': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='User',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('username', models.CharField(max_length=10)),
+ ('password', models.CharField(max_length=10)),
+ ('type', models.IntegerField()),
+ ],
+ options={
+ 'db_table': 'user',
+ 'managed': False,
+ },
+ ),
+ ]
--- /dev/null
+from __future__ import unicode_literals
+
+from django.db import models
+
+
+class Gallery(models.Model):
+ titre = models.CharField(max_length=124)
+ visu1 = models.IntegerField()
+ visu2 = models.IntegerField()
+ visu3 = models.IntegerField()
+ visu4 = models.IntegerField()
+ visu5 = models.IntegerField()
+ visu6 = models.IntegerField()
+ visu7 = models.IntegerField()
+ visu8 = models.IntegerField()
+ visu9 = models.IntegerField()
+ ordre = models.IntegerField()
+ published = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'gallery'
+
+
+class Grading(models.Model):
+ nom = models.CharField(max_length=5)
+
+ class Meta:
+ managed = False
+ db_table = 'grading'
+
+
+class Link(models.Model):
+ section = models.IntegerField()
+ adress = models.CharField(max_length=124)
+ desc = models.TextField()
+ ordre = models.IntegerField()
+ published = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'links'
+
+
+class Mix(models.Model):
+ genre = models.CharField(max_length=128)
+ titre = models.CharField(max_length=128)
+ date = models.CharField(max_length=64)
+ desc = models.TextField()
+ mp3 = models.CharField(max_length=128)
+ visu1 = models.IntegerField()
+ ordre = models.IntegerField()
+ published = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'mix'
+
+
+class News(models.Model):
+ titre = models.CharField(max_length=128)
+ texte = models.TextField()
+ visu1 = models.IntegerField()
+ position = models.IntegerField()
+ nomlien = models.CharField(max_length=128)
+ adresslien = models.CharField(max_length=255)
+ typelien = models.IntegerField()
+ ordre = models.IntegerField()
+ published = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'news'
+
+
+class Shop(models.Model):
+ theme = models.IntegerField()
+ artiste = models.CharField(max_length=128)
+ new = models.IntegerField()
+ titre = models.CharField(max_length=128)
+ label = models.CharField(max_length=128)
+ date = models.CharField(max_length=8)
+ pays = models.CharField(max_length=128)
+ desc = models.TextField()
+ cover = models.IntegerField()
+ vinyl = models.IntegerField()
+ prix = models.IntegerField()
+ devise = models.IntegerField()
+ mp3 = models.CharField(max_length=128)
+ visu1 = models.IntegerField()
+ ordre = models.IntegerField()
+ published = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'shop'
+
+
+class Theme(models.Model):
+ nom = models.CharField(max_length=124)
+ ordre = models.IntegerField()
+ published = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'theme'
+
+
+class User(models.Model):
+ username = models.CharField(max_length=10)
+ password = models.CharField(max_length=10)
+ type = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'user'
--- /dev/null
+# This is an auto-generated Django model module.\r
+# You'll have to do the following manually to clean this up:\r
+# * Rearrange models' order\r
+# * Make sure each model has one field with primary_key=True\r
+# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table\r
+# Feel free to rename the models, but don't rename db_table values or field names.\r
+#\r
+# Also note: You'll have to insert the output of 'django-admin sqlcustom [app_label]'\r
+# into your database.\r
+from __future__ import unicode_literals\r
+\r
+from django.db import models\r
+\r
+\r
+class Gallery(models.Model):\r
+ titre = models.CharField(max_length=124)\r
+ visu1 = models.IntegerField()\r
+ visu2 = models.IntegerField()\r
+ visu3 = models.IntegerField()\r
+ visu4 = models.IntegerField()\r
+ visu5 = models.IntegerField()\r
+ visu6 = models.IntegerField()\r
+ visu7 = models.IntegerField()\r
+ visu8 = models.IntegerField()\r
+ visu9 = models.IntegerField()\r
+ ordre = models.IntegerField()\r
+ published = models.IntegerField()\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'gallery'\r
+\r
+\r
+class Grading(models.Model):\r
+ nom = models.CharField(max_length=5)\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'grading'\r
+\r
+\r
+class Links(models.Model):\r
+ section = models.IntegerField()\r
+ adress = models.CharField(max_length=124)\r
+ desc = models.TextField()\r
+ ordre = models.IntegerField()\r
+ published = models.IntegerField()\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'links'\r
+\r
+\r
+class Mix(models.Model):\r
+ genre = models.CharField(max_length=128)\r
+ titre = models.CharField(max_length=128)\r
+ date = models.CharField(max_length=64)\r
+ desc = models.TextField()\r
+ mp3 = models.CharField(max_length=128)\r
+ visu1 = models.IntegerField()\r
+ ordre = models.IntegerField()\r
+ published = models.IntegerField()\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'mix'\r
+\r
+\r
+class News(models.Model):\r
+ titre = models.CharField(max_length=128)\r
+ texte = models.TextField()\r
+ visu1 = models.IntegerField()\r
+ position = models.IntegerField()\r
+ nomlien = models.CharField(max_length=128)\r
+ adresslien = models.CharField(max_length=255)\r
+ typelien = models.IntegerField()\r
+ ordre = models.IntegerField()\r
+ published = models.IntegerField()\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'news'\r
+\r
+\r
+class Shop(models.Model):\r
+ theme = models.IntegerField()\r
+ artiste = models.CharField(max_length=128)\r
+ new = models.IntegerField()\r
+ titre = models.CharField(max_length=128)\r
+ label = models.CharField(max_length=128)\r
+ date = models.CharField(max_length=8)\r
+ pays = models.CharField(max_length=128)\r
+ desc = models.TextField()\r
+ cover = models.IntegerField()\r
+ vinyl = models.IntegerField()\r
+ prix = models.IntegerField()\r
+ devise = models.IntegerField()\r
+ mp3 = models.CharField(max_length=128)\r
+ visu1 = models.IntegerField()\r
+ ordre = models.IntegerField()\r
+ published = models.IntegerField()\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'shop'\r
+\r
+\r
+class Theme(models.Model):\r
+ nom = models.CharField(max_length=124)\r
+ ordre = models.IntegerField()\r
+ published = models.IntegerField()\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'theme'\r
+\r
+\r
+class User(models.Model):\r
+ username = models.CharField(max_length=10)\r
+ password = models.CharField(max_length=10)\r
+ type = models.IntegerField()\r
+\r
+ class Meta:\r
+ managed = False\r
+ db_table = 'user'\r
--- /dev/null
+from django.test import TestCase
+
+# Create your tests here.
--- /dev/null
+from django.shortcuts import render
+
+# Create your views here.
--- /dev/null
+dbdata:
+ image: mysql
+ volumes:
+ - ./mysql:/var/lib/mysql
+ entrypoint: /bin/echo
+ command: data only container for db
+
+db:
+ image: mysql
+ environment:
+ - MYSQL_ROOT_PASSWORD=mysecretpassword
+ - MYSQL_DATABASE=diggersdigest
+ - MYSQL_USER=digger
+ - MYSQL_PASSWORD=admin
+ volumes_from:
+ - dbdata
+
+web:
+ build: .
+ command: python diggersdigest/manage.py runserver 0.0.0.0:8000
+ volumes:
+ - .:/code
+ ports:
+ - "8000:8000"
+ links:
+ - db
\ No newline at end of file
--- /dev/null
+Django==1.8.3
+MySQL-python==1.2.5
+cartridge==0.10.0