如何使用 Python 在数据库中插入
How to do an insert in the database with Python
我有一个执行 Moodle 版本检查的 Python 脚本。
检查 Moodle 版本后,我想插入数据库,但出现以下错误:
line 337
mycursor = db.cursor()
TabError: inconsistent use of tabs and spaces in indentation
这是使用中有问题的代码:
import import mysql.connector
...
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
报告的错误是关于代码缩进,但我不知道如何解决这个问题以将版本控制结果插入数据库。
代码是否缩进:
enter image description here
只需选中该行
如果版本 != 0:
只识别这一行
这里你有点误会,在python中的任何函数中,你都需要在开始编写任何代码之前提供一个缩进(制表符),
即结构是
def your_functionname(parameters)
< you code here >
因此,按照正确的方式,您的代码应该如下所示
...
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " +
version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="",
database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
您的代码需要缩进函数定义之后的部分。
所以不是这个,
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
你应该有这个,
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
我不知道你的代码的意图,但看起来你可能还想包含一个 else
语句,
else:
print ("\nVersion not found")
return False
我有一个执行 Moodle 版本检查的 Python 脚本。 检查 Moodle 版本后,我想插入数据库,但出现以下错误:
line 337
mycursor = db.cursor()
TabError: inconsistent use of tabs and spaces in indentation
这是使用中有问题的代码:
import import mysql.connector
...
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
报告的错误是关于代码缩进,但我不知道如何解决这个问题以将版本控制结果插入数据库。
代码是否缩进:
enter image description here
只需选中该行 如果版本 != 0:
只识别这一行
这里你有点误会,在python中的任何函数中,你都需要在开始编写任何代码之前提供一个缩进(制表符),
即结构是
def your_functionname(parameters)
< you code here >
因此,按照正确的方式,您的代码应该如下所示
...
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " +
version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="",
database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
您的代码需要缩进函数定义之后的部分。
所以不是这个,
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
你应该有这个,
def printversion(version):
if version != 0:
print ("\nVersion found via " + version.split(';')[2] + " : Moodle " + version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
我不知道你的代码的意图,但看起来你可能还想包含一个 else
语句,
else:
print ("\nVersion not found")
return False