我在Google App Engine上使用Django-nonrel.我正在尝试向数据库添加一行,但在尝试使用save()时出现此错误:
int()的基数为10的文字无效
这是我的代码:
views.py
from django import forms
from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import UserCreationForm
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from forms import SayForm
from models import Saying, Category
import datetime
def say_something(request):
if request.method == 'POST':
form = SayForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
content = cd['content']
category_temp = "Uncategorized"
category = Category.objects.get(name = category_temp)
added_date = datetime.datetime.now()
added_user = request.user
saying = Saying(content, category, added_date, added_user)
saying.save()
return HttpResponseRedirect('/contribute/success')
else:
form = …Run Code Online (Sandbox Code Playgroud) 我是python,django和谷歌应用引擎的新手.所有伟大的工具,并一直享受与他们合作.
但是,在我的生产网站上加载一个网页需要4秒钟,我觉得这很糟糕,需要不到一秒钟.我还验证了在获取页面的请求中有很长时间,而不是下载任何媒体文件.
首先想的是,它仍然有任何gae应用程序的第一个启动问题,我不是试图解决这些问题.我了解到,在您上传新版本后第一次访问您的网站时,它需要首次加载代码.此外,如果您的网站不经常访问,那么这种情况很多.所有这些我都知道并且没有尝试获取更多信息.
我的网站相对简单,不加载大数据或显示复杂的设计.在我的本地主机上它运行得非常快.我还应该指出,我正在使用Django nonrel,这是一个很棒的工具,可以让我在gaj上快速开发django:http://www.allbuttonspressed.com/projects/django-nonrel
我遇到的问题是它让位于生产中加载页面的时间很长,我需要深入了解它.我确信我编写的内容很糟糕,但我对python和gae不太熟悉,知道最好的调试实践,特别是如果它似乎只在生产中有问题.
因此,对于新手python/django/google应用程序引擎开发人员,如何快速轻松地找到哪些功能花费了这么多时间?
python django google-app-engine django-nonrel google-cloud-datastore
我已经尝试过这个教程http://adrian.org.ar/python/django-nginx-green-unicorn-in-an-ubuntu-11-10-ec2-instance用ngnix和gunicorn设置django.我已经安装了django和virticalenv环境中的gunicorn.Everthing已经完美安装,甚至每个命令都有效.当我gunicorn_django -b 0.0.0.0:8000进入我的django应用程序文件夹后尝试此命令时,它启动gunicorn并在shell上显示以下内容:
2012-05-22 13:22:38 [3146] [INFO] Starting gunicorn 0.14.3
2012-05-22 13:22:38 [3146] [INFO] Listening at: http://0.0.0.0:8000 (3146)
2012-05-22 13:22:38 [3146] [INFO] Using worker: sync
2012-05-22 13:22:38 [3149] [INFO] Booting worker with pid: 3149
Run Code Online (Sandbox Code Playgroud)
但是,如果我http://ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com:8000/通过浏览器转到我的亚马逊DNS 我什么都没有,broswer只是显示"找不到/连接"消息.但如果我http://ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com通过浏览器转到它显示Ngnix欢迎页面.我不知道为什么gunicorn不返回我Django欢迎页面时我转到http://ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com:8000.我甚至看不到任何GET请求登录shell来到gunicorn worker.I尝试使用gunicorn_django命令更改端口但没有运气并得到相同的结果gunicorn不提供任何页面.
请注意我使用的是django-nonrel.
安装django-norel并运行后python manage.py shell,我收到此错误:
>>> from django.utils import timezone
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: cannot import name timezone
Run Code Online (Sandbox Code Playgroud)
使用Ubuntu 12.04 LTS,python 2.7.3,django 1.4,以及django-nonrel,djangotoolbox和django-mongodb引擎的最新版本
这似乎是某种不兼容问题.我应该使用早期版本的django吗?如果是这样,我如何在install命令中指定django版本?
假设我有这个:
class Parent(models.Model):
id = models.IntegerField(primary_key=True)
children = ListField(EmbeddedModelField('Child'))
class Child(models.Model):
id = models.IntegerField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)
在mongo交互式shell中,使用特定子项查找Parent是如此简单:
db.myapp_parent.find({'children.id': 123})
Run Code Online (Sandbox Code Playgroud)
这是如何在django-nonrel中完成的?
我尝试了一些方法,包括我查找原始查询,但raw_results因为某些原因不是Parent.objects中的方法.
FWIW,这就是我的需求.txt:
git+https://github.com/django-nonrel/django@nonrel-1.3
git+https://github.com/django-nonrel/djangotoolbox@toolbox-1.3
git+https://github.com/django-nonrel/mongodb-engine@mongodb-engine-1.3
Run Code Online (Sandbox Code Playgroud)