在实际生产项目中部署(管理依赖)django 可重用应用程序的最佳实践是啥?

     2023-02-23     30

关键词:

【中文标题】在实际生产项目中部署(管理依赖)django 可重用应用程序的最佳实践是啥?【英文标题】:What's the best practice to deploy (manage dependency) the django reusable apps in a real production project?在实际生产项目中部署(管理依赖)django 可重用应用程序的最佳实践是什么? 【发布时间】:2011-11-27 13:18:17 【问题描述】:

在我们的项目中,我们正在使用一些 django 可重用的应用程序,我们正在考虑如何使持续和自动部署变得简单而轻松。

我们有两个选择:

选项#1:使用“pip install xxx”安装所有依赖项可重用应用程序。编写脚本来安装和检查依赖项。

选项#2:在我们自己的目录下复制所有使用过的可重用应用程序,因此我们基本上会将所有内容部署在我们的项目目录中。

这两种选择各有利弊,我想知道您是否可以分享您这样做的最佳实践?

【问题讨论】:

推荐:blip.tv/djangocon/taming-dependencies-with-pip-5582996 【参考方案1】:

您可以很容易地使用pip 创建一个依赖文件,这意味着每个应用程序的正确版本将在服务器之间维护

# Save dependancies to a file
pip freeze > requirement_file.txt

创建一个类似的文件:

django==1.3
django-tagging
markdown
...

以后可用于在不同的服务器上重新安装列出的应用程序

# Install all dependencies in the file
pip install -r requirement_file.txt

这是一个不错且简单的方法。你可以使用 zc.buildout 之类的东西变得更复杂

http://pypi.python.org/pypi/zc.buildout

这有助于通过脚本管理包(python 和非 python)(您可以创建包含需要安装的包的详细信息的“食谱”)

如果您需要更广泛地控制服务器安装,您可以使用“puppet”或“chef”

http://projects.puppetlabs.com/projects/1/wiki/Big_Picture http://wiki.opscode.com/display/chef/Chef+Server

旨在自动化和部署不仅仅是依赖项,而是整个服务器

我不需要使用比简单的 pip 要求文件更多的东西,但如果您需要更多,其他选项也很棒。

编辑

在项目根/python 路径中保留您自己的应用版本可能会变得繁琐且难以跟踪,我建议使用 pip 需求文件。

【讨论】:

【参考方案2】:

我在 django 的网站上找到了一个:

https://code.djangoproject.com/wiki/best-practices-to-work-with-3rd-party-apps-and-making-yours-portable

看起来他是在建议我作为选项 #2 列出的内容。

【讨论】:

我喜欢将它们保存在本地目录中,这样我就可以根据需要轻松修改它们,并且在移动时一切都在一个地方。

在 Lua 项目中管理开发依赖项的推荐方法是啥?

...】:2019-01-2613:14:44【问题描述】:我正在构建一个Lua库(实际上是一个内部kong插件),这是我第一次使用Lua-更不用说用它编写生产代码了。我已经把它变成了luarock。据我所见, 查看详情

django项目生产环境部署

参考技术Ahttps://www.jianshu.com/p/a679b602ef24安装uwsgi1、pip3installuwsgi2、在django项目下新建myuwsgi.ini文件(文件名可自取)3、进入项目根目录执行:没有报错则启动成功4、配置nginx在nginx同级目录下创建nginx.conf->my.conf文件进入nginx.conf配... 查看详情

上线

...源使用SSL加强站点安全管理1.1管理用于多个环境的配置在实际的项目中,很可能要面对不同的环境。一般至少有一个本地开发环境和一个生产环境,也可能有其他环境比如测试环境,预上线环境等。对于不同的环境&#x... 查看详情

设置django生产环境系统重启后的自动启动项(代码片段)

...。如果服务因为某些原因重启,上述应用不能自动启用,实际生产环境中后果将是一场悲剧。通过本篇教程,您将了 查看详情

使用gunicornngnxsupervisor部署django项目

...提供了一个轻量级的测试Server,但这个Server最好不要用于生产环境。那么如果我们需要在生产环境上面部署Django项目,那么我们使用什么环境呢?最早Django推荐使用Apache+mod_wsgi,但现在已经Django的部署方法已对有很多,越来越好... 查看详情

django项目部署

一、更新系统软件包yumupdate-y二、安装软件管理包和可能使用的依赖yum -y groupinstall "Development tools"yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-deve 查看详情

工具maven(代码片段)

...进来,无需人工参与,节约了我们大量的时间和精力。用实际例子来说明就是:通过Maven导入commons-fileupload-1.3.jar后,commons-io-2.0.1.jar会被自动导入,程序员不必了解这个依赖关系。3、使用Maven就可以自动的处理jar包之间的冲突问... 查看详情

部署图书管理系统项目(代码片段)

...ythonweb项目默认会生成一个wsgi.py文件,确定好应用模块。生产环境中使用的是uWSGI,实现了WSGI所有接口,C语言编写,效率很高的web服务器。uWSGI是一个全功能的HTTP服务器,实现了WSGI协议、uwsgi协议、http协议等。它要做的就是把H... 查看详情

django中静态文件之各个配置详解

...生产环境)(至于为什么之后会讲)。4.STATICFILES_DIRS:在实际项目开发中,如果我们的静态文件存放在一个或多个目录时,可以定义一个列表,用于存储静态文件,django默认配置并没有这个配置,如果需要,请自己定义,当项目... 查看详情

我无法使用 Python 2.7.10 在我的生产环境中部署 Django 1.8.5

】我无法使用Python2.7.10在我的生产环境中部署Django1.8.5【英文标题】:I\'munabletodeployDjango1.8.5onmyproductionenvironmentwithPython2.7.10【发布时间】:2016-01-2310:28:38【问题描述】:在我的本地环境中,使用Python2.7.10,我的Django项目使用.manag... 查看详情

如何一步步在生产环境上部署django和vue(代码片段)

本文由云+社区发表本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下:DJANGO_DIR----表示django的工程根目录DJANGO_NAME----表示django的工... 查看详情

基于django实现rbac权限管理(代码片段)

...应用中,可以将权限理解为url,一个权限对应一个url。在实际应用中,url是依附在菜单下的,比如一个简单的生产企业管理系统,菜单可以大致分为以下几块:制造、资材、生产管理、人事、财务等等。每个菜单下又可以有子菜... 查看详情

django本身提供了runserver,为啥不用来部署

...以支持高并发连接,官方给出最大连接数在50000个左右,实际生产中,大约也在20000~40000个左右,内存消耗少,稳定性高,支持热部署(可以在不间断服务的情况下,进行版本升级)。   相对比较而言,Django自带的runse... 查看详情

node-sass 是对 React 项目的开发还是生产依赖?

...pendecy,因为SASS仅在开发期间编译,而当推送到prod时,您实际上是在推送已编译的CSS文件? 查看详情

Heroku Django 在生产过程中如何获取设置文件?多种设置

】HerokuDjango在生产过程中如何获取设置文件?多种设置【英文标题】:HowdoesHerokuDjangopicksupsettingsfileduringproduction?Multiplesettings【发布时间】:2021-07-1912:39:03【问题描述】:这是我第一次部署,所以我只是想确保我理解。基本上,h... 查看详情

django-crm-项目部署(代码片段)

流程rbac组件的应用1:拷贝rbac组件到新的项目中,执行注册2:数据库迁移先删除rbac下migrations下除了init之外的所有文件修改用户表classUser(models.Model):‘‘‘用户表‘‘‘roles=models.ManyToManyField(Role,blank=True)#关联用类名classMeta:abstract=Tru... 查看详情

生产中的 Django i18n

】生产中的Djangoi18n【英文标题】:Djangoi18ninproduction【发布时间】:2021-11-1010:18:48【问题描述】:我要双语项目。它在本地开发中正常工作,但是当我在heroku上部署它时,它不会读取语言环境文件夹,而它在开发中工作有什么解... 查看详情

如何在安装和部署项目中包含依赖项?

】如何在安装和部署项目中包含依赖项?【英文标题】:HowtoincludedependenciesinSetupandDeploymentProject?【发布时间】:2012-06-1308:37:39【问题描述】:我有一个包含3个项目的解决方案。我创建了一个部署项目,它只包括我的解决方案中... 查看详情