import pymysql
import contextlib
jc = JsonConfig()
class MysqlAction(object):
"""
auth_user表
username face
"""
@contextlib.contextmanager
def mysql_connect(self):
conn = pymysql.connect(host=jc.mysql_host, port=jc.mysql_port, user=jc.username, passwd=jc.pwd, db=jc.dbname)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
try:
yield cursor
finally:
conn.commit()
cursor.close()
conn.close()
# add user to database
def insert_user(self, name, face):
"""
:param name:
:param face: 為處理后的列表
:return:
"""
face = json.dumps(face)
names = self._name_db()
# print("INSERT INTO auth_user (username, face) VALUES('%s', %s) " % (name, face))
# print("UPDATE auth_user SET face = %s WHERE username = '%s'" % (face, name))
with self.mysql_connect() as cursor:
if name in names:
# update
cursor.execute("UPDATE auth_user SET face = %s WHERE username = '%s'" % (face, name))
else:
# create
cursor.execute("INSERT INTO auth_user (username, face) VALUES('%s', %s) " % (name, face))
執(zhí)行流程:
1, with 語句先執(zhí)行mysql_connect函數(shù)里面yield之前的語句
2好渠,yield調(diào)用會執(zhí)行with語句內(nèi)部的所有語句, 即在 with 結(jié)構(gòu)體里面的語句
3篷店,最后執(zhí)行mysql_connect yield之后的語句