我想在Google App Engine中删除特定类型的所有数据.做这个的最好方式是什么?我写了一个删除脚本(hack),但是因为有这么多的数据是在几百条记录之后超时.
我正在试图弄清楚如何使用GWTs FileUpload小部件上传一个文件.我正在使用GWT和谷歌AppEngine与Java,但我想将文件上传到我自己的Linux服务器.我已经有以下代码,但现在我无法弄清楚如何将我的文件提交到Google AppServer服务器并将其保存到另一台服务器:
public class FileUploader{
private ControlPanel cp;
private FormPanel form = new FormPanel();
private FileUpload fu = new FileUpload();
public FileUploader(ControlPanel cp) {
this.cp = cp;
this.cp.setPrimaryArea(getFileUploaderWidget());
}
@SuppressWarnings("deprecation")
public Widget getFileUploaderWidget() {
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
// form.setAction(/* WHAT SHOULD I PUT HERE */);
VerticalPanel holder = new VerticalPanel();
fu.setName("upload");
holder.add(fu);
holder.add(new Button("Submit", new ClickHandler() {
public void onClick(ClickEvent event) {
GWT.log("You selected: " + fu.getFilename(), null);
form.submit();
}
}));
form.addSubmitHandler(new FormPanel.SubmitHandler() {
public void onSubmit(SubmitEvent event) {
if …Run Code Online (Sandbox Code Playgroud) 我正在构建一个Java Google App Engine服务器项目和一个Java桌面客户端.我想同时运行它们,但我不确定使用Eclipse/GAE插件是否可行.有什么办法吗?我希望能够同时介绍它们.
我尝试打开一个新的Eclipse实例,但它抱怨工作区已经在使用,两个项目都在同一个工作区中.(也许我可以将它们移动到不同的工作区.)
我正在编写一个ToDo列表应用程序,以帮助自己开始使用Python.该应用程序在GAE上运行,我将待办事项存储在数据存储中.我想向他们展示每个人的项目,而且他们一个人.问题是该应用程序当前向所有用户显示所有项目,因此我可以看到您所写的内容,并且您可以看到我写的内容.我想把我的todo.author对象转换成一个字符串,看看它是否与用户名相匹配将是一个好的开始,但我无法弄清楚如何做到这一点.
这就是我在main.py中的内容
...
user = users.get_current_user()
if user:
nickname = user.nickname()
todos = Todo.all()
template_values = {'nickname':nickname, 'todos':todos}
...
def post(self):
todo = Todo()
todo.author = users.get_current_user()
todo.item = self.request.get("item")
todo.completed = False
todo.put()
self.redirect('/')
Run Code Online (Sandbox Code Playgroud)
在我的index.html中我最初有这个:
<input type="text" name="item" class="form-prop" placeholder="What needs to be done?" required/>
...
<ul>
{% for todo in todos %}
<input type="checkbox"> {{todo.item}} <hr />
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
但我想只向创建它们的用户显示项目.我想过尝试
{% for todo in todos %}
{% ifequal todo.author nickname %}
<input type="checkbox"> {{todo.item}} <hr /> …Run Code Online (Sandbox Code Playgroud) 我正在尝试决定使用哪个选项.(或者如果更好的话,则为另一个)这适用于消息类型的应用程序,其中会有大量的通知和数据库写入.
选项1 - 使用云端点和云数据存储
优势的Google App Engine :
缺点:
选项2 - Firebase
专业人士:
缺点:
选项3 - 是否可以组合Google Cloud Endpoints和Firebase?
我已阅读删除列表中的字符'u',但我使用谷歌应用程序引擎,它似乎不起作用!
def get(self):
players = db.GqlQuery("SELECT * FROM Player")
print players
playerInfo = {}
test = []
for player in players:
email = player.email
gem = str(player.gem)
a = "{email:"+email + ",gem:" +gem +"}"
test.append(a)
ast.literal_eval(json.dumps(test))
print test
Run Code Online (Sandbox Code Playgroud)
最终输出:
[u'{email:test@gmail.com,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test1,gem:0}']
Run Code Online (Sandbox Code Playgroud) 谁能澄清这里的情况呢?
我使用了Bulkloader和Python25以及旧/主从数据库.
我还使用它(仅用于上传数据)与Python25和高复制数据存储区,尽管它在这里说:
http://code.google.com/appengine/docs/python/tools/uploadingdata.html
本文档适用于使用主/从数据存储的应用程序.如果您的应用使用High Replication数据存储,则可以从应用复制数据,但Google目前不支持此用例.
但是,我现在正在尝试使用高复制数据存储区和Python27的Bulkloader,它似乎无可挽回地破坏了.它实际上似乎绕过了身份验证步骤,即使我正确地将我的电子邮件传递给appcfg.py
有没有人试过这个?任何人都可以确认Bulkloader将使用哪些组件?
这里是简单的应用程序.如果我运行以下代码,我得到"运行:无法运行非主程序包"错误.
package zsdfsdf
import (
"fmt"
)
func Main() {
fmt.Println("sddddddd")
}
Run Code Online (Sandbox Code Playgroud)
修复它,我只需要将包命名为main.但我不明白为什么我需要这样做.我应该可以随心所欲地命名包装.
另一个问题,我知道主要功能是程序的切入点,你需要它.否则它将无法工作.但我看到一些没有主要功能的代码仍然有效.
点击此链接,页面底部的示例没有使用包main和main函数,它仍然有效.只是好奇为什么.
https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore
我需要在jinja2中格式化十进制数字.
当我需要格式化日期时,我在模板中调用strftime()方法,如下所示:
{{ somedate.strftime('%Y-%m-%d') }}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有类似的方法来做这个数字.
提前致谢!