小编jer*_*use的帖子

多对多 SQL 查询,用于选择所有用特定单词标记的图像

我在 Postgres 中有 2 个表:

CREATE TABLE "images" (
    "id" serial NOT NULL PRIMARY KEY,
    "title" varchar(300) NOT NULL,
    "relative_url" varchar(500) NOT NULL)
Run Code Online (Sandbox Code Playgroud)

CREATE TABLE "tags" (
    "id" serial NOT NULL PRIMARY KEY,
    "name" varchar(50) NOT NULL)
Run Code Online (Sandbox Code Playgroud)

为了在图像和标签之间建立多对多关系,我有另一个表:

CREATE TABLE "tags_image_relations" (
    "id" serial NOT NULL PRIMARY KEY,
    "tag_id" integer NOT NULL REFERENCES "tags" ("id") DEFERRABLE INITIALLY DEFERRED,
    "image_id" integer NOT NULL REFERENCES "images" ("id") DEFERRABLE INITIALLY DEFERRED)
Run Code Online (Sandbox Code Playgroud)

现在我必须编写一个查询,例如“选择所有带有 'apple' 和 'microsoft' 和 'google' 标记的图像的 relative_url

最优化的查询可以是什么?

sql postgresql many-to-many

6
推荐指数
1
解决办法
5981
查看次数

如何使用中间表在 2 个表上应用外连接?

table1 | id | value
--------------------
          1 | john
          2 | frank
          3 | patel
          4 | jim

table2 | id | value
--------------------
          6 | steve
          7 | tim
          8 | sunny
          9 | bhaskar

merged | tabid1 | tabid2
------------------------------
         3      | 7
         4      | 8
Run Code Online (Sandbox Code Playgroud)

需要的输出:

    output  | tabid1 | tabval1 | tabid2 | tabval2
              1      | john    | NULL   | NULL
              2      | frank   | NULL   | NULL
              3      | patel   | 7      | tim
              4 …
Run Code Online (Sandbox Code Playgroud)

mysql join

5
推荐指数
1
解决办法
1127
查看次数

如何从 postgres/mysql 游标对象获取数据库名称

我有几个 postgres 和 mysql 游标对象暴露给我,它们是在某个宇宙中创建的。如何从这些游标对象中找到数据库名称(以及有关该数据库的其他信息)?

cursor.__dict__ 没有任何用处。

python mysql postgresql

5
推荐指数
2
解决办法
4833
查看次数

获取post_save信号中字段的先前值

我在django中有一个post信号,我需要访问字段的先前值:

post_save.connect(callback_function_postsave, sender=Media)
Run Code Online (Sandbox Code Playgroud)

我理所当然地知道我应该使用pre_save:

pre_save.connect(callback_function_presave, sender=Media)

def callback_function_presave(sender, instance,*args,**kwargs):
try:
    old_value = sender.objects.get(pk=instance.pk).field
except sender.DoesNotExist:
    return
Run Code Online (Sandbox Code Playgroud)

然而,它必须得到old_value进入post_signal,因为基于它,我必须决定是否进行第三方API呼叫.我无法进行api调用,pre_save因为api正在使用相同的数据库,并期望提交更新的值.

我能想到的一种可能的方法是将old_value添加到实例本身,然后可以通过post_save访问:

def callback_function_presave(sender, instance,*args,**kwargs):
try:
    instance.old_value = sender.objects.get(pk=instance.pk).field
except sender.DoesNotExist:
    return

def callback_function_postsave(sender, instance,*args,**kwargs):
try:
    old_value = instance.old_value
except:
    print "This is a new entry"
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这一目标.

python django signals

5
推荐指数
1
解决办法
2980
查看次数

如何从嵌套的匿名函数向父函数返回值

我有一个javascript函数,它应该返回一个字符串的地理编码:

    function codeAddress(address) {
    var result = (new google.maps.Geocoder()).geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        return String(results[0].geometry.location.Ya)+','+String(results[0].geometry.location.Za)
      } else {
        return status;
      }
    });
    console.log(result);
    return result
}
Run Code Online (Sandbox Code Playgroud)

但是它返回"未定义".我理解这里的错误,即,因为javascript是异步的,它codeAddress甚至在function(results, status)完全执行之前就从函数返回.但我需要知道这里的解决方案和最佳实践.

javascript asynchronous anonymous-function

5
推荐指数
1
解决办法
8713
查看次数

Django 中的简单线程

我需要在 Django 中实现线程。我需要三个简单的 API:

  1. /work?process=data1&jobid=1&jobtype=nonasync
  2. /地位
  3. /kill?jobid=1

API 说明如下:

  1. apiwork将获取 aprocess并生成一个处理它的线程。现在,我们可以假设它是一个简单的sleep(10)方法。它将将该线程命名为jobid-1。该线程应该可以通过该名称检索。如果 jobid 已经存在,则无法创建新线程。可能jobtypeasync,api 调用将http status code 200在生成线程后立即返回。或者,API 可能会nonasync等待服务器完成线程并返回结果。
  2. statusapi 应该只显示每个正在运行的进程的状态。
  3. killapi 应该终止基于jobid. statusapi 不应再显示此作业。

这是我的 Django 代码:

processList = []


class Processes(threading.Thread):
""" The work api can instantiate a process object and monitor it completion"""

    threadBeginTime = time.time()

    def __init__(self, timeout, threadName, jobType):
        threading.Thread.__init__(self)
        self.totalWaitTime = timeout
        self.threadName = …
Run Code Online (Sandbox Code Playgroud)

python django multithreading

5
推荐指数
1
解决办法
8383
查看次数

访问数据表外的ajax数据

我有一个简单的数据表实例:

var table = $("#table-elem").DataTable({
        ...
        "ajax": {
            "url":Services.apiUrl,
            "dataSrc": "data"
        },
        ...
})
Run Code Online (Sandbox Code Playgroud)

我需要访问在 ajax 调用中返回的“数据”。我怎样才能做到这一点?期待类似的东西:

var ajaxJson = table.ajax.data()
//play with ajaxJson
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery datatables

5
推荐指数
1
解决办法
3631
查看次数

Whatsapp/telegram 如何确保来电通知?

我正在制作一个 VoIP 应用程序。即使应用程序处于后台,如何确保来电通知?Google FCM 仅当应用程序位于前台时才工作(可能是由于 Android 电池优化)。Whatsapp 和 Telegram 做了什么来确保近 100% 的来电通知?

onMessageReceived当应用程序处于后台时,不会调用方法。

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    private static final String TAG = "FCM Service";
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.d(TAG, "From: " + remoteMessage.getFrom());
        Log.d(TAG, "Notification Message Body: " + remoteMessage.getData().toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

PS 在浏览Telegram 的代码库时,我发现他们总是在前台运行他们的应用程序

<service android:name=".BringAppForegroundService" android:enabled="true"/>

他们就是这样解决通知问题的,还是还有比表面上看到的更多的事情?

android push-notification android-notifications firebase firebase-cloud-messaging

5
推荐指数
1
解决办法
3471
查看次数

Java相当于python的json.dumps

Python代码:

import json
jsonvalue = json.dumps({"key":key_string,"value":unsafe_string})

cursor_mysql.execute("""UPDATE data SET json = %s WHERE id = %s""", (jsonvalue, somerowid)) 
Run Code Online (Sandbox Code Playgroud)

jsonvaluejson.dumps即使unsafe_string包含unicodes,也是一个有效的json .Java中有类似的功能吗?

python java json

4
推荐指数
1
解决办法
8058
查看次数

给出'int'对象的python cProfile是不可调用的错误

以下脚本运行很棒:

$ python myscript.py 
Run Code Online (Sandbox Code Playgroud)

当我尝试使用cProfile配置我的代码时:

$ python -m cProfile -s time myscript.py
Run Code Online (Sandbox Code Playgroud)

要么

$ python -m cProfile myscript.py
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 121, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 34, in _run_code
    exec code in run_globals
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 190, in <module>
    main()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 183, in main
    run('execfile(%r)' % (sys.argv[0],), options.outfile, options.sort)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 36, in run
    result = prof.print_stats(sort)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 81, in print_stats
    pstats.Stats(self).strip_dirs().sort_stats(sort).print_stats()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/pstats.py", …
Run Code Online (Sandbox Code Playgroud)

python profiler cprofile

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