POST on MYSQL 数据库在终端完成但我的基地没有
POST on MYSQL database done in terminal but nothing in my base
我想知道为什么一切似乎都没有问题,但我的 mysql 数据库中没有插入任何内容?
我从 api 获取了一些数据,我想在 table.
中插入数据
使用烧瓶,python,pymysql
提前致谢
api = Flask(__name__)
def connect():
db = pymysql.connect(database='rtap',port=3306, host='127.0.0.1', user='root', password='',ssl_ca="{ca-cert filename}", ssl_disabled=True)
log.basicConfig(level=log.DEBUG, format='%(asctime)s %(levelname)s:\n%(message)s\n')
print("Connexion réussie")
return db
@api.route('/')
def base():
return jsonify({"version":"1.0"})
@api.route('/azure', methods=['GET'])
def read():
db = connect()
log.info('Reading Datas')
plane = "SELECT * FROM `plane`;"
cursor = db.cursor()
cursor.execute(plane)
output = cursor.fetchall()
return jsonify(output)
@api.route('/azure', methods=['POST'])
def write():
db = connect()
cursor = db.cursor()
req = request.json["response"]
# cursor.executemany("INSERT INTO `plane` (aircraft_icao, reg_number) VALUES (%s, %s);", req)
# print(req)
key = []
for i in req:
try:
if (key==[]) :
plane = "INSERT INTO `plane` (aircraft_icao, reg_number) VALUES ('{}', '{}')".format(i["aircraft_icao"], i["reg_number"])
key.append(i["reg_number"])
else:
if(i["reg_number"] not in key) : #si la key n'a pas encore été utilisée, on peut ecrire la requette, sinon on ne fait rien
plane+= ", ('{}', '{}')".format(i["aircraft_icao"], i["reg_number"])
key.append(i["reg_number"])
except Exception as e:
print("failed")
# print(plane)
cursor.execute(plane)
return jsonify(req)
if __name__=='__main__':
api.run(debug=True, port=5000, host='0.0.0.0')
traceback
您需要通过
提交您的 table 更改
db.commit()
紧接在每个 INSERT 或 INSERT 序列之后。 Read this.
假设 INSERT
语句在调试 print
函数时看起来不错,那么您可能需要在 INSERT
之后将 material 提交到数据库。尝试添加
db.commit()
cursor.close()
在 cursor.execute()
之后。
我想知道为什么一切似乎都没有问题,但我的 mysql 数据库中没有插入任何内容? 我从 api 获取了一些数据,我想在 table.
中插入数据使用烧瓶,python,pymysql
提前致谢
api = Flask(__name__)
def connect():
db = pymysql.connect(database='rtap',port=3306, host='127.0.0.1', user='root', password='',ssl_ca="{ca-cert filename}", ssl_disabled=True)
log.basicConfig(level=log.DEBUG, format='%(asctime)s %(levelname)s:\n%(message)s\n')
print("Connexion réussie")
return db
@api.route('/')
def base():
return jsonify({"version":"1.0"})
@api.route('/azure', methods=['GET'])
def read():
db = connect()
log.info('Reading Datas')
plane = "SELECT * FROM `plane`;"
cursor = db.cursor()
cursor.execute(plane)
output = cursor.fetchall()
return jsonify(output)
@api.route('/azure', methods=['POST'])
def write():
db = connect()
cursor = db.cursor()
req = request.json["response"]
# cursor.executemany("INSERT INTO `plane` (aircraft_icao, reg_number) VALUES (%s, %s);", req)
# print(req)
key = []
for i in req:
try:
if (key==[]) :
plane = "INSERT INTO `plane` (aircraft_icao, reg_number) VALUES ('{}', '{}')".format(i["aircraft_icao"], i["reg_number"])
key.append(i["reg_number"])
else:
if(i["reg_number"] not in key) : #si la key n'a pas encore été utilisée, on peut ecrire la requette, sinon on ne fait rien
plane+= ", ('{}', '{}')".format(i["aircraft_icao"], i["reg_number"])
key.append(i["reg_number"])
except Exception as e:
print("failed")
# print(plane)
cursor.execute(plane)
return jsonify(req)
if __name__=='__main__':
api.run(debug=True, port=5000, host='0.0.0.0')
traceback
您需要通过
提交您的 table 更改db.commit()
紧接在每个 INSERT 或 INSERT 序列之后。 Read this.
假设 INSERT
语句在调试 print
函数时看起来不错,那么您可能需要在 INSERT
之后将 material 提交到数据库。尝试添加
db.commit()
cursor.close()
在 cursor.execute()
之后。