Last active
January 10, 2017 01:48
-
-
Save LeMeteore/00e68a1709a6862c072650dbe50305ef to your computer and use it in GitHub Desktop.
django single file project
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding:utf-8 -*- | |
""" greetings """ | |
import os | |
import sys | |
from django.conf import settings | |
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) | |
# use base_dir as import root | |
sys.path[0] = os.path.dirname(BASE_DIR) | |
# the current folder name will also be our app | |
APP_LABEL = os.path.basename(BASE_DIR) | |
import inspect | |
stck = inspect.stack() | |
settings.configure( | |
DEBUG=os.environ.get('DEBUG', 'on') == 'on', | |
SECRET_KEY=os.environ.get('SECRET_KEY', os.urandom(32)), | |
ALLOWED_HOSTS=os.environ.get('ALLOWED_HOSTS', 'localhost').split(','), | |
ROOT_URLCONF=__name__, | |
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', | |
'django.middleware.locale.LocaleMiddleware', | |
], | |
INSTALLED_APPS=[ | |
APP_LABEL, | |
'django.contrib.admin', | |
'django.contrib.auth', | |
'django.contrib.contenttypes', | |
'django.contrib.sessions', | |
'django.contrib.messages', | |
'django.contrib.staticfiles', | |
], | |
STATIC_URL='/static/', | |
STATICFILES_DIRS=[ | |
os.path.join(BASE_DIR, "static"), | |
], | |
STATIC_ROOT=os.path.join(BASE_DIR, "static_root"), | |
MEDIA_ROOT=os.path.join(BASE_DIR, "media"), | |
MEDIA_URL='/media/', | |
TEMPLATES=[ | |
{ | |
'BACKEND': 'django.template.backends.django.DjangoTemplates', | |
'DIRS': [os.path.join(BASE_DIR, "templates"),], | |
'APP_DIRS': True, | |
'OPTIONS': { | |
'context_processors': [ | |
'django.template.context_processors.debug', | |
'django.template.context_processors.i18n', | |
'django.template.context_processors.request', | |
'django.contrib.auth.context_processors.auth', | |
'django.template.context_processors.tz', | |
'django.contrib.messages.context_processors.messages', | |
], | |
}, | |
}, | |
], | |
DATABASES={ | |
'default': { | |
'ENGINE': 'django.db.backends.sqlite3', | |
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), | |
} | |
}, | |
) | |
import django | |
django.setup() # responsible for populating the application registry. | |
from django.db import models | |
from django.contrib import admin | |
from django.db import models | |
class Author(models.Model): | |
name = models.CharField(max_length=200) | |
class Meta: | |
app_label = APP_LABEL | |
class Book(models.Model): | |
author = models.ForeignKey(Author, related_name='books') | |
title = models.CharField(max_length=400) | |
class Meta: | |
app_label = APP_LABEL | |
admin.site.register(Book) | |
admin.site.register(Author) | |
admin.autodiscover() | |
from django.conf.urls import url | |
from django.http import HttpResponse | |
from django.contrib import admin | |
def index(request): | |
""" index """ | |
return HttpResponse("Hello") | |
urlpatterns = [ | |
url(r'^admin/', admin.site.urls), | |
url(r'^$', index, name='homepage'), | |
] | |
from django.core.wsgi import get_wsgi_application | |
def return_application(): | |
return get_wsgi_application() | |
if __name__ == "__main__": | |
from django.core.management import execute_from_command_line | |
execute_from_command_line(sys.argv) | |
else: | |
return_application() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment