Python Django 项目脚手架样板自动化

问题描述

我有 django-cms 项目,我会将它用作样板,就像当我得到一个项目时,我只运行一个命令,它应该生成初始设置/复制具有不同名称的现有项目并更改一些内容

例如,我有 wsgi.py文件

"""
Wsgi config for mysite project.

It exposes the Wsgi callable as a module-level variable named ``application``.

For more information on this file,see
https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings.dev")

application = get_wsgi_application()

所以目前项目名称mysite 但是当我为另一个客户/项目重新生成相同的项目时,项目名称应该不同,就像 mywebsitepro

我的意思是,一些文本/代码应该替换为我给定的。

有人知道我如何完成它吗?就像我们运行 django 命令 django-admin startproject <projectname> 时,您可能会注意到,第一个生成文件名的所有位置都与我们在命令参数中给出的相同。

可能的解决方案是什么?有没有这样的工具?

解决方法

实际上,据我所知,您需要一组包含源代码的模板,以便您可以用值替换一些变量。

对于这种类型的系统,您应该使用模板引擎。您可以尝试一些开箱即用的工具,而不是重新发明轮子。例如Telosys (https://www.telosys.org),一个基于著名的Velocity 模板引擎的轻量级代码生成器(免费和开源) > (http://velocity.apache.org)。

一些 Python 应用程序模板已经可用(不适用于 Django,但可以作为示例):

另见本教程: https://www.slideshare.net/lguerin/telosys-tutorial-code-generation-for-a-python-web-application-based-on-bottle-and-sqlalchemy