Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在不重新启动服务器的情况下添加和删除Django应用程序?_Python_Django - Fatal编程技术网

Python 在不重新启动服务器的情况下添加和删除Django应用程序?

Python 在不重新启动服务器的情况下添加和删除Django应用程序?,python,django,Python,Django,在不重新启动nginx服务器的情况下,从django安装中包括/排除django应用程序需要进行哪些更改(如果可能的话) 特别是,我希望在不中断用户输入(文件上传和下载)的情况下向项目中添加一个新的(动态创建的)应用程序。项目不需要访问新应用程序,但新应用程序会向现有项目添加URL、模型和数据库 到目前为止,我只是在空闲时间重新启动服务器,但我希望有如下内容: GET /add/<app_name>/ def add(request, app_name): INSTALLED_

在不重新启动nginx服务器的情况下,从django安装中包括/排除django应用程序需要进行哪些更改(如果可能的话)

特别是,我希望在不中断用户输入(文件上传和下载)的情况下向项目中添加一个新的(动态创建的)应用程序。项目不需要访问新应用程序,但新应用程序会向现有项目添加URL、模型和数据库

到目前为止,我只是在空闲时间重新启动服务器,但我希望有如下内容:

GET
/add/<app_name>/

def add(request, app_name):
  INSTALLED_APPS.append(app_name)
  DATABASES["app-" + app_name] = { db_data }
  DATABASE_ROUTERS += ["apps." + app_name + ".router.Router",]
  …
GET
/加//
def添加(请求、应用程序名称):
已安装的应用程序。附加(应用程序名称)
数据库[“app-”+app_name]={db_data}
数据库_路由器+=[“应用程序”+应用程序_名称+“.router.router”,]
…

这有可能吗?是否有其他变量需要修改?

这是不可能的,也不建议这样做。您需要重新启动后端服务器(运行django进程的nginx中的上游服务器)


此外,我很好奇当你说“动态创建的应用程序”时你在做什么,因为这听起来像是一个寻找问题的解决方案。

“动态创建的应用程序”可能是一个应用程序,它是在上传模型规范后创建的。之后,django的管理界面可以直接管理对象实例,以简化数据管理,而无需启动其他服务器;要管理这些“模型”(如果结构灵活,听起来像nosql的工作),那么您可以编写一个自定义管理员来管理所有这些“模型”。是的,可能是一种解决方案。然而,我想为创建的应用程序使用其他一些django功能,因此可能没有办法重新启动。一个可能的用例是一个可插拔的应用程序。拥有从“应用商店”下载并添加到系统中的“Django应用插件”,无需重新启动Django,只需重新加载即可。你会怎么做?我可以在运行时不使用应用程序添加模型吗?在运行时可以调用_命令(“makemigrations”)和调用_命令(“migrate”)。