小编Tim*_*Tim的帖子

如何在Google App Engine(Python)NDB/Datastore中从子实体查询父实体?

我的问题非常基础,我想知道从App Engine Python中的子项访问父实体的属性值的直接和正确的方法.例如,我有以下模型架构.我正在使用Python 2.7和NDB.

class Gallery(ndb.Model):
    category    = ndb.StringProperty()
    title       = ndb.StringProperty()
    subtitle    = ndb.StringProperty()

class Image(ndb.Model):
    blob_key    = ndb.BlobKeyProperty()
    title       = ndb.StringProperty()
    gallery     = ndb.StringProperty()
    is_slider   = ndb.StringProperty()
Run Code Online (Sandbox Code Playgroud)

这里"画廊"是"图像"的父母.他们形成一个实体组展览=> Gallery => Image.我想显示Image模型中的图像以及它们所属的图库细节.我可以从父级访问子实体(图库中的图像),但反之亦然.我不想在Gallery模型中将Image model用作StructuredProperty.我大部分时间都是基于其他标志而不是图库显示所有图像(如果is_slider ="是",则会从所有图像生成幻灯片.所以直接从图像查询)但仍然希望显示相关图库的信息为什么我想知道如何访问父数据.

我觉得这是一个非常通用的问题,并寻找一个简单的解决方案,如直接访问父级,而不是回到实体组的顶部,并使用一些复杂的逻辑查询Gallery模型.任何帮助表示赞赏.

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

12
推荐指数
1
解决办法
9740
查看次数

共享列表的多处理

我写了一个这样的程序:

from multiprocessing import Process, Manager

def worker(i):
    x[i].append(i)

if __name__ == '__main__':
    manager = Manager()
    x = manager.list()
    for i in range(5):
        x.append([])
    p = []
    for i in range(5):
        p.append(Process(target=worker, args=(i,)))
        p[i].start()

    for i in range(5):
        p[i].join()

    print x
Run Code Online (Sandbox Code Playgroud)

我想在进程之间创建一个列表的共享列表,每个进程都会修改其中的列表.但是这个程序的结果是一个空列表列表:[[],[],[],[],[]].

出了什么问题?

python multiprocessing

12
推荐指数
1
解决办法
1万
查看次数

如何以编程方式添加地图片段

我想以编程方式将此xml片段添加到其他片段.可能吗?

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)

java android google-maps

12
推荐指数
1
解决办法
1万
查看次数

Android闹钟不起作用

几个小时以来我一直在努力.我还检查了文档和几个主题.我发现这个代码有两个主题,两个人都说代码工作正常,但不能在我的电脑上运行.第一个Toast出现了,但第二个Toast出现了.怎么了?

public class HelloAndroid2 extends Activity {  


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);   

    Intent intent = new Intent(this, AlarmReceiver.class);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
    intent, PendingIntent.FLAG_ONE_SHOT);

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), pendingIntent);
    Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();

}

 public final class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();

    }
 }
Run Code Online (Sandbox Code Playgroud)

}

android alarmmanager

11
推荐指数
2
解决办法
2万
查看次数

如何在android中设置alljoyn sdk?

我正在尝试设置两个Android设备通过wifi相互通信.我所经历的一些链接建议alljoyn sdk以实现这一目标.

有一个sdk下载,但没有关于如何设置环境的文档.

android alljoyn

11
推荐指数
1
解决办法
2857
查看次数

Android Studio 3.0 Canary 9 - 无法解析软件包

我在Android Studio 3.0 Canary 9中遇到了几个错误.这些错误是"无法解决:"android包,下面列出了一些.我刚安装了SDK的所有额外软件包,但我仍然遇到了一个gradle构建错误:

Error:(82, 13) Failed to resolve: com.android.support:multidex:1.0.2
Error:(85, 13) Failed to resolve: com.android.support:support-v13:26.0.0
Error:(89, 13) Failed to resolve: com.android.support:recyclerview-v7:26.0.0
Error:(97, 24) Failed to resolve: com.android.support.test:runner:1.0.0
Run Code Online (Sandbox Code Playgroud)

以及一些与测试和支持库有关的软件包.

这是我的构建脚本:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha9'
        classpath 'com.google.gms:google-services:3.1.0'
        classpath 'com.google.firebase:firebase-plugins:1.1.1'
    }
}
Run Code Online (Sandbox Code Playgroud)

我真的不确定为什么这不能建立.我刚刚更新了所有的软件包,所有的支持库在26.0.0 - >都是一样的compileSdkVersion 26

非常感谢您的任何建议!

[编辑] - 这是我的gradle构建日志

Error:Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Could not find com.android.support:multidex:1.0.2.
  Searched in the following locations:
      file:/Users/bcalabro/Library/Android/sdk/extras/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.pom
      file:/Users/bcalabro/Library/Android/sdk/extras/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.jar
      file:/Users/bcalabro/Library/Android/sdk/extras/google/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.pom
      file:/Users/bcalabro/Library/Android/sdk/extras/google/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.jar …
Run Code Online (Sandbox Code Playgroud)

android

11
推荐指数
1
解决办法
8088
查看次数

将字符串转换为对象

如何将String转换为Object?实际上,我想设置

clientSession.setAttribute("username", "abc")
Run Code Online (Sandbox Code Playgroud)

但是,它表明

java.lang.String given, required java.lang.Object.
Run Code Online (Sandbox Code Playgroud)

java

10
推荐指数
1
解决办法
19万
查看次数

对于32位或64位的构建感到困惑

我有一个带有几个项目的VS2013解决方案(C#WPF应用程序和类库).每个项目的"平台目标"都设置为"任何CPU".我的印象是,最终的EXE将在64位PC上运行为64位应用程序,在32位PC上运行32位应用程序.它是否正确?我的开发PC是64位,但是当我运行应用程序(独立或通过VS调试)时,它在任务管理器中显示为"foo.exe*32".这里发生了什么?

我们有一个拥有32位机器的初级开发人员.他还能打开解决方案并在VS中运行吗?

此外,某些项目引用了第三方DLL.供应商提供32位和64位版本 - 项目应引用哪一个?如果我引用32位DLL将阻止应用程序作为64位应用程序运行?如果我引用64位版本,这会给32位开发人员带来问题吗?那么最终用户呢 - 我的安装程序是否需要检查操作系统版本并复制相应的DLL?

最后,通过NuGet引用的DLL怎么样?NuGet是否安装了32位或64位版本的DLL?如何处理32位或64位最终用户安装?

c# visual-studio

10
推荐指数
1
解决办法
2265
查看次数

蓝色Holo颜色在设备上显示为绿色

我正面临一个奇怪的问题,我正在设置TextView的背景@android:color/holo_blue_bright,期望它是亮蓝色,只是发现它在设备上是某种亮绿色.

XML

<TextView
    android:id="@+id/tv_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:background="@drawable/chat_bubble"
    android:maxWidth="300dp"
    android:padding="5dp"
    android:singleLine="false"
    android:textSize="16sp" />
Run Code Online (Sandbox Code Playgroud)

@绘制/ chat_bubble

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/chat_bubble_background" />

    <corners android:radius="5dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

colors.xml(只是相关的行)

<color name="chat_bubble_background">@android:color/holo_blue_bright</color>
Run Code Online (Sandbox Code Playgroud)

以上设置产生了这个.每条消息都是TextView

在此输入图像描述

我想也许是因为我的设备显示不同的颜色或其他东西,所以我尝试了更多的全息颜色,但它们看起来都应该是应该的

@android:color/holo_green_light给出

在此输入图像描述

@android:color/holo_green_dark给出

在此输入图像描述

甚至@android:color/holo_orange_light@android:color/holo_purple看起来还可以

在此输入图像描述

在此输入图像描述

除了蓝色的:

@android:color/holo_blue_light给出

在此输入图像描述

@android:color/holo_blue_dark给出

在此输入图像描述

所有蓝色看起来都相似,但不是完全相同的绿色.也没有绿色作为同色调holo_green_lightholo_green_dark.

我以为这是什么?一切看起来都不错,但不是蓝色的?然后去检查HEX holo_blue_bright是什么,我在这里找到它(它的#FF00DDFF).
所以我试着直接使用那个HEX值,而不是使用预定义的全息颜色.

在此输入图像描述

Android studio(v1.2)告诉我它们与我的预期完全一样.

但是,当我改变的时候

<solid android:color="@color/chat_bubble_background" />
Run Code Online (Sandbox Code Playgroud)

<solid android:color="@color/chat_bubble_background2" />
Run Code Online (Sandbox Code Playgroud)

使用#FF00DDFF …

android colors

10
推荐指数
1
解决办法
665
查看次数

google oauth令牌的链接是什么?

我尝试与谷歌一起使用OAuth.我收到一个使用POST的代码

https://accounts.google.com/o/oauth2/v2/auth
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过POST获取访问令牌

https://www.googleapis.com/oauth2/v4/token 
Run Code Online (Sandbox Code Playgroud)

但这会给我一个"未找到"的错误.这个URI错了吗?感谢你的支持...

oauth

10
推荐指数
2
解决办法
9151
查看次数