社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

如何从模板创建Django项目

Python程序员 • 6 年前 • 605 次点击  

当默认的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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54429