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