Articles of django

上传大文件时超时?

我在一个运行gunicorn和Nginx的Linux平台上运行Django应用程序。 我允许用户上传应用程序处理并添加到后端数据库的CSV文件(大约2MB)。 问题是对于大文件,大约2或3分钟后,某个东西似乎会超时,并且会显示一个标题为“404 Not Found nginx / 0.7.6”的页面。 然而,URL不会改变 – 即它仍然是我的应用程序的file upload页面的URL。 Nginx错误日志显示: 2011/09/08 13:28:05 [error] 1349#0:* 303上行超时(110:连接超时),从上游读取响应头,客户端:213.146.112.122,server:_,request:“POST / app / import_csv / HTTP / 1.1“,上游: 任何想法发生了什么? 我怎样才能增加这个超时?

作为根源运行芹菜

由于访问原因,我需要以root身份运行我的Django。 它说我需要设置C_FORCE_ROOT环境variables。 如何/在哪里设置环境variables?

创build一个Cron作业 – Linux / Python

嗨,我有一个Django脚本,我需要运行, 我认为这些命令可以通过bash调用。 事情是脚本在很长一段时间后导致内存泄漏,所以我想创build一个调用Python脚本的外部cron作业。 因此,脚本将终止并重新启动,同时重新获得丢失的内存。 有人能指出我正确的方向吗? 我对这个问题知之甚less,感觉有点失落。

Djangoforms下拉列表中的数字

我是新来的Django,我想做一个简单的forms,根据文档我可以使用表单模块从Django from django import forms class CronForm(forms.Form): name = forms.CharField(max_length=100) email = forms.EmailField(required=False, label='Your e-mail address') message = forms.CharField(widget=forms.Textarea) def clean_message(self): message = self.cleaned_data['message'] num_words = len(message.split()) if num_words < 4: raise forms.ValidationError("Not enough words!") return message 我想知道如何创build一个月的下拉列表,即从1到31? 有些已经完成了在他们的表单模板使用JavaScript,可以在Django中完成吗?

如何在不延迟任务的情况下轻松重启Celery

我们在我们的Django webapp中使用Celery来pipe理离线任务; 其中一些任务可以运行长达120秒。 每当我们做任何代码修改,我们需要重新启动芹菜重新加载新的Python代码。 我们目前的解决scheme是发送一个SIGTERM到主Celery进程( kill -s 15 `cat /var/run/celeryd.pid` ),然后等待它死掉并重新启动它( python manage.py celeryd –pidfile=/var/run/celeryd.pid […] )。 由于长时间运行的任务,这通常意味着关机将花费一两分钟的时间,在此期间不会处理新的任务,从而导致当前站点上的用户明显延迟。 我正在寻找一种方法告诉Celeryclosures,但是立即启动一个新的Celery实例来开始运行新的任务。 事情没有工作: 发送SIGHUP到主进程:这导致Celery尝试“重启”,通过热关机然后重新启动。 这不仅花费很长时间,甚至不工作,因为新进程显然是在旧进程死亡之前启动的,所以新进程抱怨ERROR: Pidfile (/var/run/celeryd.pid) already exists. Seems we're already running? (PID: 13214) ERROR: Pidfile (/var/run/celeryd.pid) already exists. Seems we're already running? (PID: 13214) ERROR: Pidfile (/var/run/celeryd.pid) already exists. Seems we're already running? (PID: 13214)并立即死亡。 (这看起来像是芹菜本身的一个bug,我已经让他们知道了。) […]

在Django设置文件中无法获取环境variables

我试图读取Django设置中的一些环境variables,我已经在/home/user/.bashrc(和后者在/etc/bash.bashrc)中定义了这些variables,但是我得到的是一个KeyErrorexception。 我知道我的环境variables已设置,因为我可以在terminal(echo $ VAR_NAME)中打印它们。 这应该是微不足道的。 这是我正在使用的代码。 from django.core.exceptions import ImproperlyConfigured msg = "Set the %s environment variable" def get_env_variable(var_name): try: return os.environ[var_name] except KeyError: error_msg = msg % var_name raise ImproperlyConfigured(error_msg) OS_DB_USER = get_env_variable('MY_USER') OS_DB_PASS = get_env_variable('MY_PASS') OS_DB_DB = get_env_variable('MY_DB') OS_GAME_LOGS = get_env_variable('DIR_LOGS') 我只是找不到缺less的东西。 有什么build议吗? 谢谢 编辑:用mod_wsgi在Apache上运行。

如何使用python2.7pip而不是默认pip

我刚刚安装了python 2.7,也点到2.7的网站包。 当我拿到版本: pip -V 表明: pip 1.3.1 from /usr/lib/python2.6/site-packages (python 2.6) 我如何使用位于以下位置的2.7版本的pip: /usr/local/lib/python2.7/site-packages

Django Permission denied:'/ var / www / media / animals / user_uploads'

我正在开发一个django API,它将在运行Ubuntu的服务器上通过WSGI在Apache2上运行。 用户将能够使用POST请求将他们拍摄的照片上传到服务器。 API处理此请求,然后尝试将图像写入/var/www/media/animals/user_uploads/<animal_type>/<picture_name>.jpg 。 如果没有目录/var/www/media/animals/user_uploads/<animal_type>/它将创build它。 在开发过程中进行testing时,一切都很好,都使用Windows和Scientific Linux。 在部署服务器上进行testing时,出现以下错误: 据我所知,Apache2服务器正在使用用户www-data 。 在我的情况下,运行cat /etc/passwd来获取用户列表,这是我得到的www-data : WWW的数据:X:33:33:WWW的数据:/无功/networking:/ bin / sh的 我假设这意味着www-data可以访问/var/www/ 。 我努力了: chmod 777 -R媒体 这工作,但它显然是一个非常糟糕的方式来解决这个问题。 有没有更好的方法来解决这个问题? 这是我的wsgi.py: import os, sys os.environ.setdefault("DJANGO_SETTINGS_MODULE", "serengeti.settings") sys.path.append('/serengeti/django/serengeti') sys.path.append('/serengeti/django') from django.core.wsgi import get_wsgi_application application = get_wsgi_application() 我在我的settings.py文件中有这个: MEDIA_ROOT = '/var/www/media/' MEDIA_URL = os.path.join(BASE_DIR,'/media/') 我的vhost.conf包含这个: Alias /media/ /var/www/media/

当我在ssh上运行django runserver的时候,stream浪不是转发的

我用Python&Django创build了一个Vagrant Ubuntu(lucid32)框。 我的想法是启动VM,用vagrant ssh ,然后运行以下命令启动Django: manage.py runserver 默认为端口8000.问题是我无法从主机的浏览器( http://127.0.0.1:8000访问Django服务器。 我能做什么?

如何在Windows上安装GeoDjango的GEOS

我开始使用Python 2.5,Django 1.2,MySQL和Apache的GeoDjango项目。 该项目将被上传到Linux服务器,但发展将在Windows上。 问题是我只是无法通过安装GEOS,它是如何完成的?