Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django中获取数据库表中新添加的记录_Python_Sql_Django - Fatal编程技术网

Python 在django中获取数据库表中新添加的记录

Python 在django中获取数据库表中新添加的记录,python,sql,django,Python,Sql,Django,我在django(开发服务器)中有一个数据库设置,在远程计算机中有一个代理(exe)。当我执行代理时,代理将在服务器数据库中插入数据(使用sql查询) (在代理中,我使用python MySQLDb将数据连接并插入DB表。) 在服务器端,我正在循环中等待获取记录,但我无法使用soft\u row\u obj=EpSoftData.objects.filter(unique\u id=un\u id)找到最新插入的记录(尽管我可以在数据库中看到条目(手动) 我的模型文件: class EpSoft

我在django(开发服务器)中有一个数据库设置,在远程计算机中有一个代理(exe)。当我执行代理时,代理将在服务器数据库中插入数据(使用sql查询) (在代理中,我使用python MySQLDb将数据连接并插入DB表。)

在服务器端,我正在循环中等待获取记录,但我无法使用soft\u row\u obj=EpSoftData.objects.filter(unique\u id=un\u id)找到最新插入的记录(尽管我可以在数据库中看到条目(手动)

我的模型文件:

class EpSoftData(models.Model):
    unique_id = models.BigIntegerField(null=True, blank=True)
    ip_address = models.CharField(max_length=60)
    soft_data = models.CharField(max_length=15000, blank=True)
    scan_time = models.DateTimeField()
    err_msg = models.CharField(max_length=3000, blank=True)

    class Meta:
        db_table = u'ep_soft_data'
Views.py文件:

def func(un_id):
    while True:
        soft_row_obj = EpSoftData.objects.filter(unique_id = un_id)
        if soft_row_obj :
            return soft_row_obj
            break;   
代理代码:

"INSERT INTO ep_soft_data (unique_id, ip_address, soft_data, scan_time, err_msg) VALUES ('%d','%s', '%s', '%s', '%s')" % (self.unique_id, self.ip_address, json.dumps(self.agentDict), self.scanTime, self.err_msg)
如果使用sql查询插入记录,Django不会在运行时加载数据。 如何获得记录


提前感谢。

默认情况下在事务中运行视图。在事务内部运行的代码看不到在事务外部执行的更改。您应该阅读以了解如何在函数内提交事务,甚至完全禁用事务管理。

这解决了我的问题,需要在每次查询新值之前更新,它是缓存

soft_row_obj = EpSoftData.objects.update()

谢谢大家的投入

我认为这里没有足够的信息来帮助大家。你是如何获得你通过的联合国身份证的?如果有错误,您会收到什么错误?如果没有错误,您会得到什么结果?请留下un_id。如果我试图使用len(EpSoftData.objects.all())获取数据库中所有可用记录的len,则无法获取新添加的记录。(我认为模型对象无法加载新记录,如果是使用特定会话的sql查询完成的话)仍然缺少详细信息
len(EpSoftData.objects.all())
返回的数值小于
EpSoftData
表中的记录数(通过使用“工作台”工具检查确定?“我认为模型对象无法加载新记录,如果它是通过对特定会话使用sql查询完成的”--你为什么这么认为?你有什么证据?