Простейшая установка django

Я хочу использовать django для очень простого проекта, в основном локального проекта для навигации по каталогам, и я в основном использую его только для его языка шаблонов и ORM. Мне интересно, могу ли я сделать все это в одном файле следующим образом:

  • manage.py (включает все, кроме html)
  • main.html

Этот подход работает для всего, кроме загрузки django.models, которая, как я думаю, предполагает, что файл настроек уже импортирован перед вызовом. Вот что у меня есть на данный момент:

#!/usr/bin/env python
import os, sys
from django.core.management import execute_from_command_line
from django.conf.urls import patterns, url

### Settings
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "manage")
ROOT_URLCONF = 'manage'
TEMPLATE_DIRS = '.'
DEBUG = True
DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'bookmarks','USER':'root','PASSWORD':'','HOST':'','PORT':'',}}
urlpatterns = patterns('', url(r'^$', 'manage.main', name='main'),)

### Views
def main(request):
    from django.shortcuts import render
    return render(request, 'main.html', {'hello': "Hello"})


### Models
# from django.db import models <-- everything works except this line
# class Tag(models.Model):
#     name = models.CharField(max_length=30, primary_key=True)

if __name__ == "__main__":
    execute_from_command_line(sys.argv)

Сообщение об ошибке, которое я получаю, следующее:

Файл ".../django/db/init.py", строка 11, in if DEFAULT_DB_ALIAS not in settings.DATABASES:

Есть ли простой способ собрать все в один файл?

Большое спасибо Iain за указание правильного направления. Вот полные настройки, которые я использую для работы всего приложения в одном файле, который может иметь любое имя:

#!/usr/bin/env python
import os, sys
from django.conf import settings
from django.conf.urls import patterns, url
from django.core.management import execute_from_command_line

### Settings
if not settings.configured:
    settings.configure(
        DEBUG=True,
        ROOT_URLCONF=sys.modules[__name__],
        TEMPLATE_DIRS = '.',
        DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'bookmarks','USER':'root'}},
    )
from django.shortcuts import render
from django.db import models
urlpatterns = patterns(__name__, url(r'^$', 'main', name='main'),)

### Views
def main(request):
    tags = Tag.objects.all()
    return render(request, 'main.html', {'tags': tags})

### Models
class Tag(models.Model):
    name = models.CharField(max_length=30, primary_key=True)
    class Meta: app_label=''; db_table='tag'

if __name__ == "__main__":
    execute_from_command_line(sys.argv if len(sys.argv) != 1 else sys.argv + ['runserver',])

Вернуться на верх