我在settings.py中有一些东西,我希望能够从模板访问,但我无法弄清楚如何做到这一点.我已经试过了
{{CONSTANT_NAME}}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.这可能吗?
我是Python和Django的新手.
我正在使用PostgreSQL数据库引擎后端配置Django项目,但我在每个数据库操作上都遇到错误,例如当我运行时manage.py syncdb
,我得到:
C:\xampp\htdocs\djangodir>python manage.py syncdb
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
438, in execute_manager
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
67, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in im
port_module
__import__(name)
File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py"
, line 7, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_
signal
File "C:\Python27\lib\site-packages\django\core\management\sql.py", line …
Run Code Online (Sandbox Code Playgroud) 这是一个非常初学的问题.但我很难过.如何在model.py中引用django设置变量?
NameError:名称'PRIVATE_DIR'未定义也尝试了很多其他的东西,包括 settings.PRIVATE_DIR
这样做的正确方法是什么?
--------- ------------- settings.py
NameError: name 'PRIVATE_DIR' is not defined
Run Code Online (Sandbox Code Playgroud)
--------- model.py ---------------
PRIVATE_DIR = '/home/me/django_projects/myproject/storage_dir'
Run Code Online (Sandbox Code Playgroud) 发行说明说:
Django 1.3为Python的日志记录模块添加了框架级支持.
真好.我想利用这一点.不幸的是,文档并没有以完整的工作示例代码的形式将它全部交给我,这表明这是多么简单和有价值.
如何设置这个时髦的新功能,以便我可以使用我的代码
logging.debug('really awesome stuff dude: %s' % somevar)
Run Code Online (Sandbox Code Playgroud)
并查看文件"/tmp/application.log"填写
18:31:59 Apr 21 2011 awesome stuff dude: foobar
18:32:00 Apr 21 2011 awesome stuff dude: foobar
18:32:01 Apr 21 2011 awesome stuff dude: foobar
Run Code Online (Sandbox Code Playgroud)
默认的Python日志记录和这种"框架级支持"之间有什么区别?
我正在配置一个Django项目,该项目使用服务器文件系统来存储应用程序静态文件(STATIC_ROOT
)和用户上传的文件(MEDIA_ROOT
).
我现在需要在亚马逊的S3上托管所有内容,所以我为此创建了一个存储桶.使用django-storages
与boto
存储后端,我设法收集静态上传到S3斗:
MEDIA_ROOT = '/media/'
STATIC_ROOT = '/static/'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'KEY_ID...'
AWS_SECRET_ACCESS_KEY = 'ACCESS_KEY...'
AWS_STORAGE_BUCKET_NAME = 'bucket-name'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
Run Code Online (Sandbox Code Playgroud)
然后,我遇到了一个问题:MEDIA_ROOT
并且STATIC_ROOT
没有在存储桶中使用,因此存储桶根目录包含静态文件和用户上载的路径.
那么我可以设置:
S3_URL = 'http://s3.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL + STATIC_ROOT
MEDIA_URL = 'S3_URL + MEDIA_ROOT
Run Code Online (Sandbox Code Playgroud)
并在模板中使用这些设置,但在S3中存储时,静态/媒体文件没有区别django-storages
.
怎么做到这一点?
谢谢!
django amazon-s3 static-files django-settings django-storage
我正在阅读大多数人所做的事情,from django.conf import settings
但我不认为只是import settings
在django项目文件中做的差别.有人可以解释这个区别吗?
我试图将我的django项目配置为部署到heroku.我收到以下错误,我真的不知道如何解决它.
这是完整的追溯和错误:
22:46:15 web.1 | Traceback (most recent call last):
22:46:15 web.1 | File "/Users/nir/nirla/venv/lib/python2.7/site-packages/gunicorn/arbiter.py", line 495, in spawn_worker
22:46:15 web.1 | worker.init_process()
22:46:15 web.1 | File "/Users/nir/nirla/venv/lib/python2.7/site-packages/gunicorn/workers/base.py", line 106, in init_process
22:46:15 web.1 | self.wsgi = self.app.wsgi()
22:46:15 web.1 | File "/Users/nir/nirla/venv/lib/python2.7/site-packages/gunicorn/app/base.py", line 114, in wsgi
22:46:15 web.1 | self.callable = self.load()
22:46:15 web.1 | File "/Users/nir/nirla/venv/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 62, in load
22:46:15 web.1 | return self.load_wsgiapp()
22:46:15 web.1 | File "/Users/nir/nirla/venv/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load_wsgiapp
22:46:15 web.1 …
Run Code Online (Sandbox Code Playgroud) 对于我的生活,我一直在寻找这个,并没有找到答案.我希望我不会发布重复内容.
建议您将秘密密钥保存在与常规settings.py不同的文件中.此外,您永远不应提交包含诸如SECRET_KEY,AWS_SECRET_KEY等密钥的"secret.py"文件.
我的问题是:在您的生产服务器中,您需要引用您的密钥,这意味着您的"secret.py"设置文件应该位于服务器周围的某个位置吗?如果是这样,您如何在生产中保护您的密钥?
我正在使用这个数字海洋教程设置我自己的Django服务器.我在每个步骤后创建了Django框架,并使用以下命令运行服务器:
./manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
当我尝试在端口8000访问IP时,显示以下错误:
DisallowedHost at /
Invalid HTTP_HOST header: 'XXX.XXX.XXX.XXX:8000'. You may need to add u'XXX.XXX.XXX.XXX' to ALLOWED_HOSTS.
Run Code Online (Sandbox Code Playgroud)
(用X代替的IP)
为什么会这样?
默认情况下,登录后django会将用户重定向到帐户/配置文件页面,或者如果您编辑LOGIN_REDIRECT_URL,则可以将用户发送到您在settings.py中指定的另一个页面.
这很棒,但我希望用户(登录后)被重定向到一个自定义页面,该页面的链接看起来像这样:mysite.com/username
.因此,默认帐户/配置文件或LOGIN_REDIRECT_URL设置在这种情况下不起作用,因为两者都是静态的.就我而言username
,每个用户的地址部分都会发生变化.
当用户登录时,我如何能够做到这一点的任何想法将转到自定义用户页面,该用户页面在地址中具有用户名称,如: mysite.com/username
?任何输入都是真正的赞赏.
django ×10
django-settings ×10
python ×4
amazon-s3 ×1
django-urls ×1
django-views ×1
heroku ×1
postgresql ×1
psycopg2 ×1
static-files ×1