4

在 Java 世界中,分发 Web 应用程序的常用方法是将其与 Apache Tomcat 一起打包。使用 Django(或任何 WSGI 应用程序)实现类似目标的适当方法是什么?

4

3 回答 3

5

在 django 中有两个分发应用程序的阵营。这也取决于您所说的应用程序

  1. 如果您的意思是应用程序在 django 术语中是与项目分离的“可插入应用程序”,那么最好使用 setuptools 来打包这些“可插入应用程序”。许多 django 的“可插拔应用程序”都是这样分布的。例如:
  1. 但是,如果您的意思是应用程序是 Java EE 术语中的成熟应用程序(整个 war 文件),那么您将在项目中包含所有应用程序,并且您只需以任何形式分发项目。通常,您只需将其压缩即可。您不需要使用 setuptools 或其他任何方式安装它,因为您可以从项目文件夹中运行您的项目。这个营地的例子是:

如果您已经在运行 django 项目并且您想在许多其他项目中重用这些可插拔应用程序,则第一种方法很方便。如果您正在构建非整体 Web 应用程序或内部应用程序/网站或可重用应用程序,这非常好。如果您自己管理项目和那些可插入的应用程序,这也很方便。如果您想用这种方法向客户销售应用程序,这有点不方便(在某种程度上),因为您的项目和可插入应用程序位于不同的目录中。有些人说他们对这种方法没有任何问题。

如果您将应用程序出售给客户,则第二种方法会更方便,因为所有应用程序都在您的项目中,并且您只会在客户端时提取您的项目。这种风格通常被称为整体风格。Java EE 和 Ruby on Rails 具有单体部署风格。当您在客户端时,您不需要一一安装您的“可插拔应用程序”(假设您在项目中不使用任何外部可插拔应用程序)。但同样,如果您想在项目中重用这些小应用程序,您会遇到一些问题。如果你没有任何重复使用这些小应用程序的计划,那么这种方式就足够了。

于 2009-09-22T01:14:59.787 回答
2

setuptools是分发任何 Python 包(包括 Django 应用程序)的常用方法,许多更重要的 Django 应用程序(想到 Pinax)将通过cheeseshop或作为带有 setuptools 生成setup.py文件的 tarball 或 zip 分发。

不太重要的可重用应用程序将仅作为压缩文件分发,因为它们应该是高度可移植的,所以效果很好。

于 2009-09-22T00:21:16.590 回答
0

django 应用程序与 python 模块没有太大区别,您可以使用 python 的setuptools.

于 2009-09-22T00:23:05.243 回答