将文件转换成可复用的模板,便可以通过模板的基本布局来设计未来项目。
startproject的模板是一个目录或zip文件,当命令运行时形成Django模板。
默认情况下,所有Python源文件都会被制成模板。
制作过程中会把project_name、project_directory、secret_key和docs_version作为上下文传递。
文件名同样会被制作到这个上下文中。
要把hello.py转换到项目模板中(project_name/project_name.py),示例如下:
project_name/project_name.py
import os
import sys
from django.conf import settings
DEBUG = os.environ.get('DEBUG', 'on') == 'on'
SECRET_KEY = os.environ.get('SECRET_KEY', '{{ secret_key }}')
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', 'localhost').split(',')
settings.configure(
DEBUG=DEBUG,
SECRET_KEY=SECRET_KEY,
ALLOWED_HOSTS=ALLOWED_HOSTS,
ROOT_URLCONF=__name__,
MIDDLEWARE_CLASSES=(
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
),
)
from django.conf.urls import url
from django.core.wsgi import get_wsgi_application
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World')
urlpatterns = (
url(r'^$', index),
)
application = get_wsgi_application()
if __name__ == '__main__':
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
然后在project_name/目录所在的位置运行:
django-admin startproject foo --template=project_name
这条命令会在foo文件夹下创建一个foo.py文件,可以像原先的hello.py文件一样运行。