![]() |
1
20
当然,
顺便说一下,我在开发服务器上运行时生成了一个语法上无效的模板,并在
|
![]() |
2
36
我在settings.py中放置了以下内容,以区分标准dev服务器和产品:
然而,这也依赖于惯例。 (根据Daniel Magnusson的评论修订) |
![]() |
3
14
通常我设置一个变量
编辑:
此外,您可以简单地使用此逻辑包括
|
![]() |
4
7
通常这是可行的:
|
![]() |
5
6
依赖settings.debug是AFAICS最优雅的方式,因为它有时也用于Django代码库。 我想您真正想要的是一种自动设置该标志的方法,而不需要每次将项目上载到生产服务器时手动更新它。 为此,我检查settings.py的路径(在settings.py中)以确定项目运行在哪个服务器上:
注意,您也可能更喜欢像@soviut建议的那样使用环境变量进行检查。但是作为一个在Windows上开发并在Linux上服务的人,检查文件路径比使用环境变量简单得多。 |
![]() |
6
4
我刚才遇到了这个问题,最后写了一个类似于Aryeh Leib Taurog的解决方案。我的主要区别是,在运行服务器时,我想区分生产环境和开发环境,但在为我的应用程序运行一些一次性脚本时(我的运行方式类似于django_settings_module=settings python[脚本])。在这种情况下,只需查看argv[1]==runserver是否不够。所以我想到的是在运行devserver时,以及在运行脚本时,传递一个额外的命令行参数,并在settings.py中查找该参数。代码如下:
然后,运行django服务器 python manage.py runserver[您想要的任何选项]——在开发中 运行我的脚本就像 django_settings_module=settings python[myscript]——开发中 只要确保你传递的额外论点不会与任何Django冲突(事实上,我使用我的应用程序的名字作为论点的一部分)。 我认为这是相当不错的,因为它让我能够准确地控制服务器和脚本的prod或dev行为,而且我不依赖于任何其他人的约定,除了我自己的约定。 edit:manage.py在传递无法识别的选项时会抱怨,因此需要将settings.py中的代码更改为
虽然这是可行的,但我知道这不是最优雅的解决方案… |
![]() |
7
3
如果要根据运行时环境自动切换设置文件 你可以只使用不同环境的东西,例如
|
![]() |
8
2
settings.debug可以为true,并在Apache或其他非开发服务器下运行。它仍然会运行。据我所知,在运行时环境中,除了检查pid并将其与OS中的pid进行比较之外,什么都没有。 |
![]() |
9
2
开发环境和部署环境之间的一个区别是运行它的服务器。具体的不同之处将取决于您的开发和部署环境。
了解自己的开发和部署环境后,可以使用HTTP请求变量来区分这两者。看
request variables
喜欢
我打赌你会发现一些非常明显的不同的东西,可以用来检测你的开发环境。做测试
|
![]() |
10
2
我使用:
这需要注意返回的内容
你也可以调查 more complicated ways of uniquely identifying computers . |
![]() |
11
1
受Aryeh答案的启发,我为自己设计的技巧就是在
(我的用例是在运行测试服务器时自动启用Django本机身份验证-在Apache下运行时,甚至在开发服务器上,我当前项目的所有身份验证都是通过Kerberos处理的) |
![]() |
12
1
你可以确定你是否在
|
![]() |
CoXier · Python计划在烧瓶中不起作用 7 年前 |
![]() |
NosPix · wsgi中写的行的含义是什么。形态 7 年前 |
![]() |
intelis · Flask和Apache2:没有命名为app的模块 9 年前 |
![]() |
Remi Guan cdlane · 如何退出程序但函数仍在运行? 9 年前 |