python+selenium recordsによるデータベース操作
3260 ワード
class ConnectDb:
"""
records
"""
@staticmethod
def connect(filepath=None) -> records.Database:
"""
:param filepath:
:return:
"""
if filepath is None:
file = INIFILEPATH
else:
file = filepath
host = Readini.getvalue("Database", "dbhost", file)
port = Readini.getvalue("Database", "dbport", file)
user = Readini.getvalue("Database", "dbusername", file)
passwd = Readini.getvalue("Database", "dbpasswd", file)
db = Readini.getvalue("Database", "dbname")
db_url = 'mysql+pymysql://' + user + ':' + passwd + '@' + str(host) + ':' + str(port) + '/' + db
# connect = records.Database('mysql+pymysql:// : @sqlURl:sql / ')
connect = records.Database(db_url)
return connect
def insert_run_record(self, project_name, device_sn, device_static, run_value):
"""
:param project_name: , config , PROJECTNAME
:param device_sn:
:param device_static:
:param run_value:
"""
try:
value = {
'device_sn': device_sn,
'device_static': device_static,
'run_value': run_value,
'create_time': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
connect.query(
"insert into selenium_chanpin_znsd_runvalue(project_id, device_sn,device_static,run_value,create_time) "
"values(:project_id," +
"(SELECT project_id FROM selenium_project where project_name = '" + project_name + "')" +
",:device_static, :run_value, :create_time)", **value)
except Exception as e:
print("sql " + str(e))
def select_run_value(self, device_sn) -> str:
"""
:param device_sn: sn
:return:
"""
try:
select_value_sql = "SELECT run_value FROM selenium_chanpin_znsd_runvalue where device_sn='" + device_sn + \
" 'ORDER BY create_time DESC limit 1"
rows = connect.query(select_value_sql)
return rows.first(as_ordereddict=True)["run_value"]
except Exception as e:
print(" sql " + str(e))
依存パッケージPyMySQLとrecordsが必要
recordsでデータベースを接続するには、recordsプラグイン、recordsをインストールする必要があります.Databaseはデータベースに接続し、Databaseオブジェクトを返します.主にrecordsを使用します.Database.queryは、データの挿入、データの照会などの操作を行います
データを挿入するには、対応するフィールド値:valueを設定し、sqlのinsertのvaluesで(:フィールド値)で対応するvalueを直接読み取り、sql文に他のテーブルをクエリーして得られた値がある場合、sqlに対応するselectを接続する必要があります.
検索文、sqlをつなぎ合わせて、connectを実行します.query(sql)はクラスのオブジェクトを返します.このオブジェクトには、パラメータas_を追加できる3つの一般的なメソッドall/first/oneがあります.dict=True(結果を辞書に変換)as_ordereddict=True(結果を辞書に変換してソート)では、allはすべてを返し、firstは最初の結果であり、oneは唯一の結果である.