最近在Stackoverflow上回复了一个类似的问题:谷歌云存储客户端没有在dev appserver上工作
解决方案是将SDK升级到1.8.8或使用之前没有错误的GCS客户端库的修订版.
我目前正在使用1.8.8,并尝试下载多个修订版和/ _ah/gcs不为我加载.在使用大量我的后端实例试图了解GCS和应用程序引擎如何协同工作之后,如果我可以在我的本地服务器上测试它就会很棒!
当我访问localhost:port/_ah/gcs时,我收到404未找到错误.
只是抬头,安装库我所做的就是将代码拖放到我的app文件夹中.我想知道我是否可以跳过设置步骤?我无法在文档中找到答案!
谢谢!!
注意 为了澄清这是我使用GCS的第一周,所以我第一次尝试使用dev_server来托管它.
这是我正在尝试做的事情:用户在太平洋提交时间,一旦提交,我使用.replace将时区设置为太平洋.
Pacific = time.USTimeZone(-8, "Pacific", "PST", "PDT")
addEvent.date = addEvent.date.replace(tzinfo=Pacific)
Run Code Online (Sandbox Code Playgroud)
一旦我设置了tzinfo,我就做了一个put.根据google appengine的python文档,它说:
"如果日期时间值具有tzinfo属性,则它将转换为UTC时区进行存储.值从数据存储区返回UTC,tzinfo为None.需要日期和时间值的应用程序才能使用时区必须在更新值时正确设置tzinfo,并在访问值时将值转换为时区."
但是,当我执行put()时,我收到以下错误:
警告2012-10-06 21:10:14,579 tasklets.py:399]初始生成器_put_tasklet(context.py:264)引发NotImplementedError(DatetimeProperty日期只能支持UTC.请派生一个新属性以支持备用时区.)警告2012 -10-06 21:10:14,579 tasklets.py:399]暂停生成器put(context.py:703)引发NotImplementedError(DatetimeProperty日期只能支持UTC.请派生一个新属性来支持备用时区.)
请注意我使用的是NDB
好的,所以在做完之后我假设NDB可能不会自动将其转换为UTC.那么我尝试使用以下代码将其转换为UTC:
class UTC(tzinfo):
def utcoffset(self, dt):
return timedelta(0)
def tzname(self, dt):
return str("UTC")
def dst(self, dt):
return timedelta(0)
Run Code Online (Sandbox Code Playgroud)
现在,即使将太平洋时间转换为UTC并将tzinfo名称设置为"UTC",我仍然会得到相同的错误.
真的可以在这里使用大量的帮助......谢谢!
我正在将webapp2 auth实现到我的代码库中,并希望了解这个怪癖:
在models.py中,我看到它表明:
为了在创建新属性时确保属性唯一性
User,我们首先Unique为这些属性创建 记录,如果一切顺利,我们可以保存新User记录::
对我来说,这似乎是一种非常复杂的测试唯一性的方法,说实话,我并不完全理解"create_multi"函数正在做什么......这可能就是为什么我在这里有点困惑.我的思考过程是:
只需快速查询以查看数据存储区中是否存在用户名(auth.id).如果没有那么put().
我知道我错过了什么,有人可以向我解释一下吗?我有一种预感,也许代码是在那里输入的,这样,如果人们想要,有多个唯一身份就很容易?
谢谢!
ps显然,webapp2代码的灵感来自于这段编码.
我试图按月/年将Jinja的日期/时间列表分组.这是我现在的代码:
{% for group in EventsList|groupby('date') %}
<b>{{group.grouper}}</b><br />
{% for event in group.list %}
<i>{{event.title}}</i>
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但问题是它目前按特定日期分组.我想按月/年分组(即2011年1月,2011年2月等).
相反,用Python做这个会更有效吗?
谢谢!