小编Dan*_*ath的帖子

如何使用GAE创建自动完成?

我使用jQuery UI 自动完成小部件.我也有GAE数据存储区:

class Person(db.Model):
    # key_name contains person id in format 'lastname-firstname-middlename-counter',
    # counter and leading dash are omitted, if counter=0
    first_name = db.StringProperty()
    last_name = db.StringProperty()
    middle_name = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)

当用户可以输入姓氏,名字和/或中间名时,如何在自动填充小部件中搜索此人?

所以,我得到的用户输入字符串为self.request.get('term').我应该如何在我的数据存储区中搜索相同内容(因为我需要查看每个字段,可能还有3个字段的组合值)?如何优化这样的查询?我也不清楚答复格式应该是什么.jQuery doc说:

数据源可以是:

an Array with local data
a String, specifying a URL
a Callback
Run Code Online (Sandbox Code Playgroud)

本地数据可以是一个简单的字符串数组,也可以包含数组中每个项目的对象,带有标签或值属性或两者.

google-app-engine jquery-ui google-cloud-datastore

3
推荐指数
1
解决办法
1647
查看次数

标量函数使用UniVerse ODBC驱动程序

我使用UniVerse ODBC驱动程序将数据从我们的事务系统提取到SQL Server 2008. ODBC驱动程序安装在Windows Server 2003上,它工作正常.我试图找到一些关于编写标量函数(如CONVERT)的语法的帮助.

当我阅读手册时,我发现该功能得到了支持.但是当我尝试编写一个类似的查询时

SELECT CONVERT(ID AS VARCHAR(10)) FROM TableName
Run Code Online (Sandbox Code Playgroud)

查询失败,语法错误.我怀疑ODBC驱动程序不支持此语法.任何帮助都将受到高度赞赏.谢谢.

sql sql-server odbc ssis universe

3
推荐指数
1
解决办法
526
查看次数

使对象持久化时出错

我正在尝试使用JDO在GAE平台上编写Vaadin应用程序,当我想调用此方法时:

public void createUser(String login, String password, String email) {
    PersistenceManager pm = PMF.get().getPersistenceManager();
    User user = new User(login, password, email);
    try {
        pm.makePersistent(user);
    } finally {
        pm.close();
    }

}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

(...)引起:javax.jdo.JDOFatalUserException:必须指定名为javax.jdo.PersistenceManagerFactoryClass的属性,或者带有META-INF/services/javax.jdo.PersistenceManagerFactory条目的jar文件必须位于类路径中,或者必须指定名为javax.jdo.option.PersistenceUnitName的属性.NestedThrowables:javax.jdo.JDOUserException:您已为此PMF指定使用"transactions-optional"的"持久性单元"(但这不存在!)或您使用"transactions-optional"调用JDOHelper.getPersistenceManagerFactory作为位于javax.jdo.JDOHelper的javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:856)javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:1092)中属性文件的名称(并且不存在于CLASSPATH中) .appPersistenceManagerFactory(JDOHelper.java:914)at myapp.PMF.(PMF.java:8)... 43更多引起:javax.jdo.JDOUserException:您已指定此PMF使用"持久性单位" "transactions-optional"(但这不存在!)或者您将JDOHelper.getPersistenceManagerFactory称为"transactions-optional"作为属性文件的名称(并且这不存在于CLASSPATH中)(...)

我搜索了谷歌,发现了一些解决这个问题的方法,但没有一个适用于我的应用程序(或者我做错了什么).例如.不行.哦,我在META-INF中有jdoconfig.xml文件.如果有人有类似的问题,并且他想分享他的智慧,我将非常感激.

编辑:jdoconfig文件:

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
    <persistence-manager-factory name="transactions-optional">
        <property name="javax.jdo.PersistenceManagerFactoryClass"
            value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory" />
        <property name="javax.jdo.option.ConnectionURL" value="appengine" />
        <property name="javax.jdo.option.NontransactionalRead" value="true" />
        <property name="javax.jdo.option.NontransactionalWrite"
            value="true" />
        <property name="javax.jdo.option.RetainValues" value="true" />
        <property name="datanucleus.appengine.autoCreateDatastoreTxns"
            value="true" />
    </persistence-manager-factory>
</jdoconfig> 
Run Code Online (Sandbox Code Playgroud)

google-app-engine persistence jdo vaadin google-cloud-datastore

3
推荐指数
1
解决办法
4450
查看次数

Google App Engine投影查询

我有这样的模型:

class Users(db.Model):
   email = db.EmailProperty(required=True, indexed=True)
   user_name = db.StringProperty(required=True, indexed=True)
   api_key = db.StringProperty(required=False, indexed=False)
   active = db.BooleanProperty(required=True, indexed=False)
   real_name = db.StringProperty(required=False, indexed=False)
   ...etc
Run Code Online (Sandbox Code Playgroud)

当我尝试进行这样的查询时:

user = db.GqlQuery("SELECT email, api_key, active FROM Users WHERE user_name = :1", username).get()
Run Code Online (Sandbox Code Playgroud)

它返回None,但是当我使用这个查询时:

user = db.GqlQuery("SELECT * FROM Users WHERE user_name = :1", username).get()
Run Code Online (Sandbox Code Playgroud)

没关系,退货.但为什么我不能使用第一个查询?

python google-app-engine google-cloud-datastore

3
推荐指数
1
解决办法
735
查看次数

将数据上传到Google App Engine数据存储区需要配方

虽然我在过去几个月里一直在忙着完成我的Google App Engine解决方案,但现在我发现由于本地dev_server和appspot之间的变化和差异,Google让我把我画成了一个角落.

场景:我的应用程序部署在带有Federated OpenID身份验证的appspot上.

问题:当应用配置为使用OpenID时,Google不支持数据上传.(他们知道这个问题,并不认为这是一个错误.)

几年前,尼克·约翰逊在他的博客上发布了一个remote_api和OpenID解决方法,但有几个人报告说它不再适用.

此外,最新的(第二版)Dan Sanderson的书"Programming Google App Engine"不再包含有关数据上传的章节.有一章关于备份和还原,但在备份之前我无法恢复数据,在数据存在之前我无法备份数据!

我无法相信我是这个困境中的唯一一个 - 它似乎应该是一个非常普遍的需求 - 我只需要在我的应用程序使用OpenID时上传数据.

请记住,关于我的本地dev_server Python应用程序的一切都很好(appcfg.py,upload_data,remote_api,CSV yaml configs等),但appspot上的这个问题阻止我发布我的应用程序!

有没有人有一个简单的,最新的,有文档记录的配方,可以将数千条记录上传到app引擎?定制上传处理程序端点 用新的应用程序版本捆绑数据文件,然后以某种方式读取它们?将CSV文件发布到Google云端硬盘并从任务队列中读取它们?

有任何想法吗?

google-app-engine google-cloud-datastore

3
推荐指数
1
解决办法
523
查看次数

我可以在谷歌应用引擎上使用SQLite库吗?

我目前正在使用Google Datastore存储数据.我想以sql数据库的形式保留一个脱机版本.是否可以在谷歌应用引擎上使用sqlite将数据存储转换为SQL数据库?

sqlite google-app-engine google-cloud-datastore

3
推荐指数
1
解决办法
5549
查看次数

我如何使用Google App Engine数据存储区实现这一目标?

我是Datastore的初学者,我想知道如何使用它来实现我想做的事情.

例如,我的应用需要跟踪客户及其所有购买情况.

来自关系数据库,我可以通过创建[Customers]和[Purchases]表来实现这一点.在Datastore中,我可以使[Customers]和[Purchases]种类.

我正在努力的是[购买]类型的结构.

如果我将[Purchases]作为[Customers]类型的子项,那么[Customers]中的一个实体和[Purchases]中的一个实体是否共享相同的密钥?这是否意味着在[Purchases]实体内部,我会为每次购买而持续增加一个属性?

或者,我是否会为他们进行的每次购买都有一个[购买]实体,并且在每个实体中,我会有一个指向[客户]类型的实体的属性?

数据存储在这些场景中的表现如何?

google-app-engine google-cloud-datastore

3
推荐指数
1
解决办法
1152
查看次数

Google App Engine - 数据存储区密钥ID int vs string性能

您好我想知道使用Int和String ID为Entity Key有多大的性能差异.

我无法找到任何关于此的文章.在我看来,大规模比较长字符串必须比int64s慢得多或者我错了,并且有一些很酷的算法使它以相同的速度运行.

我想使用sha256哈希作为字符串ID,但是与int ID相比,我不想丢失任何东西.

例如,如果我有1 000 000 000个同类实体并且我使用sha512有实体的字符串ID(128个字符),那么在相同数量的实体中使用比实际数量的int64 ID慢1个实体的读取(从数据存储获取)?如果是多少?

谢谢你的回答或建议,希望我解释得对.

google-app-engine google-cloud-datastore

3
推荐指数
1
解决办法
1015
查看次数

GAE w/Objectify - 你能查询HashMap吗?

在GAE中,使用Objectify时,您可以查询HashMap吗?如果是这样你会怎么写呢?

ofy().load().type(MyClass.class).filter("hashMapfieldName", "keyQueryinggFor").list();
Run Code Online (Sandbox Code Playgroud)

似乎不工作,而且hashMapfieldName是一个HashMap<String, String>.我期待找到hashMapfieldName包含某个键的实体.

java google-app-engine objectify google-cloud-datastore

3
推荐指数
1
解决办法
890
查看次数

使用Google App Engine和ndb时,您是否曾看到重复的ID?

Appengine生产db

class Entries(ndb.Model):
  description = ndb.StringProperty()
  seqid = ndb.IntegerProperty()
  link = ndb.StringProperty()
  group = ndb.StringProperty()
  timestamp = ndb.StringProperty()
  referrals = ndb.StringProperty(repeated=True)
Run Code Online (Sandbox Code Playgroud)

图片中的两个条目由两个不同的用户创建.用户是Entry的父级.

我在生产中获得了重复的ID,但在本地没有.此外,它始终是相同的ID号(但它肯定不是任何地方的硬编码)

由于父级是用户,我仍然可以将其作为唯一条目拉出来,但如果我有两个条目与同一个父用户,则意味着会出现问题.

python google-app-engine app-engine-ndb google-cloud-datastore

3
推荐指数
1
解决办法
587
查看次数