来自 Django文档:
您不应在运行时更改应用程序中的设置。例如,不要在视图中执行此操作:
Run Code Online (Sandbox Code Playgroud)from django.conf import settings settings.DEBUG = True # Don't do this!您应该分配给设置的唯一位置是在设置文件中。
我注意到 Django 测试代码确实改变了设置。为什么可以在那里做?
语境:
我在数据库上有一个表,它使用来自外部数据库的值。此外部数据库会定期更新其值。
问题:
为了在每次启动服务器时更新我的数据库,我想在 runserver 之后立即运行一个脚本。
可能的解决方案:
我已经看到可以从某个应用程序运行脚本,这是我感兴趣的事情。这可以通过使用django-extensions:
https://django-extensions.readthedocs.io/en/latest/runscript.html
但是,此脚本仅使用以下命令运行:
python manage.py runscript your_script
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以从应用程序运行脚本并在 runserver 命令之后立即执行它?我愿意接受建议!
提前致谢
更新
感谢@Raydel Miranda 的评论,我觉得我留下了一些信息。
我的目标是,一旦我启动服务器,我打算打开一个套接字来维护我的数据库更新。
如何在django中安装片段?(特别是这个)
我有文件/{project}/snippets/EnforceLoginMiddleware.py,我已经尝试了任何数量的排列MIDDLEWARE_CLASSES加载它以及谷歌搜索django snippets install无济于事:(
任何帮助将不胜感激:)
PS(为什么我找不到任何关于安装代码片段的文档或示例.也许我只是一个糟糕的Google员工)
我肯定错过了什么.
我正在尝试从设置文件中导入DEFAULT_CONTENT_TYPE.我没有在我的settings.py文件中专门定义它,但我假设默认值可用.
当我将此变量添加到我的settings.py时,它工作正常,但是当它不存在并且我尝试导入时,通过runserver命令使用开发服务器时会得到一个ImportError:
from settings import DEFAULT_CONTENT_TYPE
ImportError: cannot import name DEFAULT_CONTENT_TYPE
Run Code Online (Sandbox Code Playgroud)
我不能在不必将其添加到我的 settings.py文件中的情况下执行此操作吗?
我来自PHP背景,想要STATICFILES_DIRS
在settings.py和windows中提供路径
我明白我需要提供完整的路径:
D:/path/to/folder/project/static
我想知道有没有办法给出一些像"/ static /"这样的路径我们可以像dirname(__FILE__)PHP 一样给出路径吗?
所以我的路径没有硬编码.另外为什么它是物理路径,因为它使用http路径通常不遵循加载CSS文件的物理路径?那么为什么这种方式(物理路径)在django?有人可以解释一下.
感谢大家的提前努力.
我做了一个原型网站,工作i18n文本翻译.但无论我在settings.py中的LANGUAGE_CODE设置中放置什么,我都认为我的页面没有任何影响.它似乎总是被locale finder中间件所覆盖.django的文档没有给出太多解释.这个设置的真正目的是什么?
我对Django和Python很陌生。我的环境是Win7和Python3.4。现在,按照Django官方网站中的教程构建一个Web应用程序。首先,一切工作都很好,并且输出都是预期的和正确的。但是今天,当我重新运行命令“ python manage.py runserver”时,它给了我非常奇怪的错误消息,如下所示。请帮助,非常感谢!
$ python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
utility.execute()
File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 312, in execute
django.setup()
File "C:\Python34\lib\site-packages\django\__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Python34\lib\site-packages\django\apps\registry.py", line 115, in populate
app_config.ready()
File "C:\Python34\lib\site-packages\django\contrib\admin\apps.py", line 22, in ready
self.module.autodiscover()
File "C:\Python34\lib\site-packages\django\contrib\admin\__init__.py", line 24, in autodiscover
autodiscover_modules('admin', register_to=site)
File "C:\Python34\lib\site-packages\django\utils\module_loading.py", line 74, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return …Run Code Online (Sandbox Code Playgroud) 我想在Django-1.9中添加Redis数据库,所以我按照这些文档进行集成 https://niwinz.github.io/django-redis/latest/ 但我没有找到任何关于如何提及数据库名称的线索设置,这里我想提到Redis作为代表Sqlite3的数据库,如果取消注释这行django抛出DATABASE错误未找到
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'sqlite3'),
}
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的解决方案
我已经安装了jinja2,之后'DIRS'停止工作(我必须手工包含它们).改变'APP_DIRS'没有帮助
模板看起来像这样:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'APP_DIRS': False,
'DIRS': ['main/templates', 'shop/templates'],
'OPTIONS': {
'environment': 'django_test.create_jinjia_env.environment',
'autoescape': True,
'auto_reload': DEBUG,
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Run Code Online (Sandbox Code Playgroud)
如果不在DIRS中包含模板,则会抛出相同的错误
没有找到那样的问题.提前致谢!
我正在尝试在EC2实例上部署Django应用。我已将我的EC2实例正确放置在Allowed_Host中。但它一直给我一个Disallowed_Host错误。我一直在尝试解决此问题,但现在我明白了。
/ debug_toolbar / base.html上的Django TemplateDoesNotExist错误
谁能建议我做错了什么?以下是我的屏幕截图和代码。顺便说一句,它在我的开发127.0.0.1中工作得很好
下面也是回溯,以防万一
我已经在下面附加了settings.py文件
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = "1111111111111111111111"
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ["ec2-11-111-111-11.compute-1.amazonaws.com", "127.0.0.1", "Siteevent.com", "www.Siteevent.com"]
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis',
'bootstrap3',
'accounts',
'groups',
'posts',
'proof',
'feeds',
'questions',
'tasting',
'verification',
'cart',
'stripe',
'order',
'report',
'django_cleanup', …Run Code Online (Sandbox Code Playgroud) django ×10
django-settings ×10
python ×7
amazon-ec2 ×1
django-1.4 ×1
django-redis ×1
jinja2 ×1
python-3.x ×1
redis ×1
testing ×1