Простейшая установка 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',])