
当默认的Django项目格式不再满足要求时,Django项目模板便是自然的解决方案。在本教程中学习如何创建自己的Django项目模板吧。

什么是Django项目模板?
Django的一个相当模糊的特性是能够从模板,即自定义的目录结构,开始安装Django项目。
当默认的项目格式不再满足要求时(相信我,这不是在你希望在生产环境中部署时才会出现的情况),或者当你需要对许多Django项目重复相同的配置时,这一特性就很方便了。
Django项目模板只不过是一个预先定义的带有自定义目录结构的项目,你可以在几分钟内为自己创建一个模板。
一个比较流行的Django模板的例子是django-cookiecutter。它具有广泛的特性和配置,可以用于绝对可靠的生产部署,几乎可用于任何新的Django项目。
然而,django-cookiecutter有时候会很复杂,尤其是对于初学者来说,一个更简单的Django模板可以帮助你在使用django -cookiecutter之前掌握一些基础知识。
在下一节中,你将学习如何构建自己的模板。
如何创建自己的Django项目模板
首先,在选择的文件夹中创建一个Python虚拟环境并安装Django(请注意,它们是四个独立的命令):

然后使用以下命令创建一个新的Django项目:

注意一下项目名称:它应该是project_name。一旦完成,在编辑器中打开该项目。
(注意,在本例中,我对外部文件夹使用了project-name,而对项目名称使用了project_name)。
现在你应该遍历项目中的每个文件,并将出现的每个project_name替换为{{ project_name }}(一个sed一行程序就可以做到)。
你需要调整的文件有:
manage.py
settings.py
wsgi.py
asgi.py
你可能已经猜到{{project_name}}是一个占位符变量。例如,在 manage.py中,你会将以下内容:

更改为这样:

在wsgi.py中将以下内容:

更改为这样:

等等。
此外,你可能还希望调整你希望的任何配置,或者更好的做法是将Django设置分割到单独的文件中,以用于开发、测试和生产。你可以在这里看到一个例子。(地址:https://github.com/valentinogagliardi/ponee/tree/master/project_name/settings )
在进入下一节之前,不要忘记从模板项目中删除虚拟环境。
如何从你的模板创建Django项目
模板项目就绪后,在一个不同的文件夹中创建一个新的Python虚拟环境,并安装Django:

现在,我们将传递--template标志来从我们的模板中安装,而不是像以前那样运行django-admin startproject。假设你在你的主目录~/project-name中创建了模板,你应该运行:

这个命令将从模板开始创建你的新的Django项目。
(注意,在本例中,我使用了new-django-project作为外部文件夹名称,使用new_django_project作为项目名称)。
现在,就很方便了,你可能在想是否有一种方法可以使用远程模板,比如从Github 仓库。是的,你可以!
如何从远程模板创建Django项目
startproject的--template标记也可以接受一个URL作为远程源。这意味着你可以像这样从一个远程模板安装Django项目:

福利:模板化所有东西
除了模板化Django的相关文件之外,你还可以对项目中的任何其他文件执行相同的操作。
假设你想要部署到Heroku,这里就需要一个Procfile。你需要通过模板化系统传递Procfile,以便将{{project_name}}替换为实际的项目名称,你可以使用--name标志运行startproject:

确保在Procfile中有一个project_name的占位符:

资源
要获得稍微复杂的Django模板,请参阅ponee,它是一个轻量级的Django模板,可以用于Heroku。
(地址:https://github.com/valentinogagliardi/ponee )
英文原文:https://www.valentinog.com/blog/django-project/
译者:Nothing
