Django中的可复用模板

将文件转换成可复用的模板,便可以通过模板的基本布局来设计未来项目。

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文件一样运行。

原文地址:https://www.cnblogs.com/zifeiy/p/8761716.html