在Django中如何重複使用可重複使用的應用程式

2024-09-29 21:59:23 发布

您现在位置:Python中文网/ 问答频道 /正文


我正试图在Django创建我的第一个站点,当我在那里寻找可以从中获得灵感的示例应用程序时,我经常偶然发现一个名为“可重用应用程序”的术语。在

我理解一个非常容易重用的应用程序的概念,但是在Django中重用应用程序的方法对我来说是完全不可能的。在整个行业中困扰我的几个问题是:

djangore的首选方式是什么?我该把它放在哪里,如何引用它?在

据我所知,建议是把它放在你的“PYTHONPATH”上,但一旦我需要将我的应用部署到一个我只能访问的远程位置(例如在托管服务上),这个建议就失效了。在

因此,如果我在本地计算机上开发我的站点,并打算将其部署到只有ftp访问权限的ISP上,那么如何重用第三方Django应用程序,以便在部署我的站点时,该站点继续工作(例如,我唯一能指望的是服务提供商安装了Python 2.5和Django 1.x)?在

如何组织我的Django项目,以便我可以轻松地将其与我想使用的所有可重用应用程序一起部署?在


Tags: django方法应用程序概念示例远程站点部署
2条回答

一个老问题,但我要做的是:

如果您使用的是版本控制系统(VCS),我建议您将软件所需的所有可重用应用程序和库(包括django)放入VCS中。如果不想将它们直接放在项目根目录下,可以修改设置.py将他们的位置添加到搜索路径. 在

部署完成后,只需将VCS存储库克隆或签出到您想使用它的任何位置。在

这有两个额外的好处:

  • 版本不匹配;您的软件始终使用测试时使用的版本,而不是部署时可用的版本。在
  • 如果有多个人在这个项目上工作,那么其他人就不必处理安装依赖关系了。在

当需要更新组件的版本时,请在VCS中更新它,然后通过它将更新传播到部署中。在

一般来说,使用可重用应用程序的唯一要求就是确保它在sys.path上,这样就可以从Python代码导入它。在大多数情况下(如果作者遵循最佳实践),可重用的应用程序tarball或bundle将包含一个包含docs、README、一个setup.py的顶级目录,然后是一个包含实际应用程序的子目录(参见django-voting以获取示例;应用程序本身在“voting”子目录中)。这个子目录是需要放在Python路径中的目录。可能的方法包括:

  • 运行pip install appname,如果应用程序已经上传到PyPI(现在大多数都是)
  • 使用setup.py install安装应用程序(这与pip install appname的结果相同,但需要您首先自己下载并解包代码;pip将为您完成这项工作)
  • 手动将代码目录符号链接到Python站点包目录
  • 使用类似virtualenv的软件创建一个有自己站点包目录的“虚拟Python环境”,然后在该virtualenv处于活动状态的情况下运行setup.py install或{},或者在virtualenv的站点包中放置或符号链接该应用程序(如果您重视您未来的健全性,则强烈推荐使用所有“全局安装”选项)
  • 将应用程序放在您打算放置各种应用程序的某个目录中,然后将该目录添加到PYTHONPATH环境变量中

如果你能启动一个Python解释器并“导入投票”(例如)而没有得到一个ImportError,你就会知道你得到了正确的结果。在

在一个只有FTP访问权限的服务器上,你唯一的选择实际上是最后一个,他们必须为你设置。如果他们声称支持Django,他们必须提供一些地方,您可以在那里上载包,并且可以在Python中导入它们。如果不知道你的网络主机的细节,就不可能说出他们是如何为你构建的。在

相关问题 更多 >

    热门问题