【发布时间】:2018-07-25 05:28:49
【问题描述】:
我正在尝试使用 Python 脚本将信息保存到 Postgresql 中的数据库中。 对于更一般的解释,我正在使用 Rails 制作一个 WebApp,在其中我调用一个作业来运行一个 python 脚本来处理一些图像和数据,之后,我希望将它们保存到我的数据库中。
其他事情,我正在将图像上传到 AWS S3,等待上传完成,然后再将信息保存到数据库中。
我用来上传信息的python代码如下:
# Function which connects wit postgresql and uploads into the database
#....(Asume param and model_id are known variables, which i do not post it here.)
def insert_param(param, model_id):
con = None
try:
con = psycopg2.connect("host='localhost'
dbname='app_development'
user='usr'
password=''")
wait(con)
cur = con.cursor()
cur.execute("UPDATE M_Param SET Model=%s WHERE Id=%s",(param, model_id))
con.commit()
except Exception, e:
print e
if con:
con.rollback()
print 'Error %s' % e
sys.exit(1)
finally:
if con:
con.close()
#Function which wait for the connection to the database to be ready.
def wait(conn):
while 1:
state = conn.poll()
if state == psycopg2.extensions.POLL_OK:
print "Poll Conection OK"
break
elif state == psycopg2.extensions.POLL_WRITE:
print "Poll writting"
select.select([], [conn.fileno()], [])
elif state == psycopg2.extensions.POLL_READ:
print "Poll reading"
select.select([conn.fileno()], [], [])
else:
raise psycopg2.OperationalError("poll() returned %s" % state)
#Here I call the first function
insert_count(param,model_id)
有时我在将数据上传到 postgresql 时遇到问题,随机情况下信息未上传。 在它提交之后,我尝试从数据库中获取数据,但我什么也没得到,也没有从这些尝试中得到有价值的信息。
这是我的问题:
- 我保存信息并将信息提交到数据库的方式有问题吗?
- 在继续运行更多代码之前,我是否需要等待提交使用一些回调返回“ok”状态?
非常欢迎任何帮助、参考或反馈。
【问题讨论】:
标签: python database postgresql