相关疑难解决方法(0)

如何在Django中获取完整/绝对URL(带域名)?

如何https://example.com/some/path没有Sites模块的情况下获取 Django中的完整/绝对URL(例如)?那真是太傻了......我不需要查询我的数据库来获取URL!

我想用它reverse().

django

348
推荐指数
15
解决办法
25万
查看次数

如何配置Django进行简单的开发和部署?

我倾向于在进行Django 开发时使用SQLite,但在实时服务器上经常需要更强大的东西(例如MySQL/PostgreSQL).不变的是,Django设置还有其他变化:不同的记录位置/强度,媒体路径等.

如何管理所有这些更改以使部署成为一个简单的自动化流程?

python django

111
推荐指数
5
解决办法
2万
查看次数

在svn/hg/git/etc中优雅地处理特定于站点的设置/配置?

我一直在寻找一种更好的方法来处理特定于站点的设置(在这种情况下,django settings.py文件).

settings.py结构和字段相当一致,但开发人员的框,集成,QA,测试和生产环境之间的值不同.

控制设置源同时仍然允许在不同框之间进行更改的优雅方法是什么?

我也担心在源代码管理中有敏感数据(例如数据库密码),但我确实想要自动部署.

我们使用过的例子:

  • settings.py设置公共值,然后根据主机名或用户名加载辅助设置文件.

  • 使用部署脚本将值注入settings.py文件.但这只是将问题转移到管理部署脚本而不是settings.py脚本.

有人有一个特别优雅的方法吗?

django version-control configuration

24
推荐指数
1
解决办法
4408
查看次数

管理多个settings.py文件

可能重复:
如何在Django中管理本地vs生产设置?

我已经设法成功部署Django项目上的Apache的Web服务器使用mod_wsgi.

我想了解一些如何管理多个settings.py文件的建议.现在我有一个用于开发,一个完全不同于生产(关于数据库参数,静态内容本地化和类似的东西).我的settings.py文件是版本化的(不知道这是不是一个好习惯)我用以下内容部署它:

$ hg archive myproject.tbz2
$ cd /path/of/apache/web/project/location
$ bzip2 -db /home/myself/myproject/myproject.tbz2 | tar -xvf -
Run Code Online (Sandbox Code Playgroud)

它工作正常.但我发现自己在操纵多个settings.py文件.

我想我的问题是:在为多个文件版本部署DJANGO PROJECTS时,最佳做法是什么settings.py

python apache deployment django

16
推荐指数
3
解决办法
8473
查看次数

你是如何设置Django dev environement的?

我正在尝试使用启用了Vagrant的虚拟机来设置本地Django开发环境但是我不确定什么是最好的方法.

git clone从生产服务器做了一个Django文件,并安装了生产服务器在我本地虚拟机上的所有模块.我想避免在本地VM上安装数据库,但遇到了会话的一些问题.本地计算机正在使用SESSION_COOKIE_DOMAIN='localhost'并且正在使用生产,SESSION_COOKIE_DOMAIN='.mydomain.com'因此会产生一些混乱.

更不用说在我的开发环境中的setting.py上,我不得不将IP更改为指向数据库的公共IP地址(因此在安全性上挖了一个洞),而我的生产settings.py正在使用本地IP,所以我最终使用了不同的settings.py文件.

我可以继续尝试新的方法,但我真的必须开始使用这个项目,而且我很确定有些人已经知道了这个问题.

那么你是如何设置Django开发环境的呢?

django vagrant

8
推荐指数
1
解决办法
3359
查看次数

在开发与生产之间分离 Django 安装的应用程序

我有 3 个设置文件:

  • base.py(共享)
  • 开发.py
  • 生产.py

base.py 有:

INSTALLED_APPS = (

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes'
    ...
Run Code Online (Sandbox Code Playgroud)

但是我有一些只需要在我的开发环境中使用的应用程序,例如,debug-toolbar.

我在 development.py 中试过这个:

INSTALLED_APPS += (
    'debug_toolbar',
)
Run Code Online (Sandbox Code Playgroud)

但得到错误: NameError: name 'INSTALLED_APPS' is not defined

设置文件的连接方式如下:

__init__.py

from .base import *

try:
    from .production import *
except:
    from .development import *
Run Code Online (Sandbox Code Playgroud)

如何区分我的生产/开发环境之间已安装的应用程序?

python django django-apps django-settings

8
推荐指数
2
解决办法
1475
查看次数

在Django中组织设置

我正在研究Django项目,该项目使用位于项目根目录中的几个"设置"文件中指定的几十个配置变量:

--> myproject
------> app folders
------> ...
--- settings.py
--- settings_global.py
--- settings_production.py
--- settings_development.py
Run Code Online (Sandbox Code Playgroud)

然后根据某些运行时参数(主机名等)在settings.py文件中导入来自不同settings_*文件的变量.这一切都运行得很好,但有时候仍然很难找到某个变量,所以我想重新组织设置变量并将它们分成几个类别:

  • 项目特定的变量
  • django特定的变量
  • 安装了应用程序的特定变量(例如django_compressor的设置等)
  • 环境特定变量(生产/开发)

另外我想将所有设置文件但settings.py文件移动到settings子目录:

--> myproject
------> app folders
------> ...
------> settings
---------- __init__.py
---------- common.py
---------- production.py
---------- development.py
---------- apps.py
---------- ...
--- settings.py
Run Code Online (Sandbox Code Playgroud)

我已经创建了settings子目录(以及空__init__.py文件)并复制/重命名了设置文件.然后我尝试在我的setting.py文件中导入这些变量,如下所示:

from settings.common import *
from settings.apps import *
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误(即使在settings/common.py文件中存在ROOT_URLCONF):

AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

django

7
推荐指数
1
解决办法
1752
查看次数

CSRF验证失败 - 当主机安全时,Referer不安全

我将Django从1.8升级到1.9.之后,在Django管理员登录后,我在本地主机上收到此错误:

Referer checking failed - Referer is insecure while host is secure.

生产中的一切都很好.以下是我的settings.py文件的片段:

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
Run Code Online (Sandbox Code Playgroud)

django django-csrf django-1.9

7
推荐指数
2
解决办法
3440
查看次数

如何在 django 中定义两个数据库,一个用于生产,一个用于开发

我有一个在 Heroku 上运行的项目,我的本地计算机上没有安装 PostgreSQL。我想使用 继续在本地计算机上运行该应用程序sqlite3,但是当我将其推送到 Heroku 时,它将转换为pg

我想做的就是有一个 IF 条件,如果这是开发,则运行 sqlite3 .. 但如果是生产运行,则执行以下命令。

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': '',
    'HOST': '',
    'PORT': 5432,
    'USER': '',
    'PASSWORD': ''
  }
}
Run Code Online (Sandbox Code Playgroud)

Heroku 正在与dj_database_url

import dj_database_url
DATABASES['default'] =  dj_database_url.config()
Run Code Online (Sandbox Code Playgroud)

它基本上类似于Rails我们定义用于生产的 gem 以及用于测试和开发的另一个 gem。

python django heroku

5
推荐指数
1
解决办法
866
查看次数