#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5 import (QtWidgets, QtCore, QtSql, QtGui) import random from config import * random.seed() ############################################################################# def creamot(lg1=5, lg2=10, alphas="ABCDEFGHIJKLMNOPQRSTUVWXYZ"): """retourne un mot au hasard, composé avec les lettres de alphas, et de longueur au hasard entre lg1 et lg2 (bornes comprises) """ lg = random.randint(lg1, lg2) # longueur au hasard du mot à créer maxalphas = len(alphas)-1 # indice de la dernière lettre de alphas lettres = [alphas[random.randint(0, maxalphas)] for i in range(0, lg)] return ''.join(lettres) ############################################################################# def creatable(matable): """ouvre la base avec le pilote "QPSQL" pour PostgreSQL, et renvoie la connexion (ou None si échec) """ params = config() db = QtSql.QSqlDatabase.addDatabase("QPSQL") db.setHostName(params['host']) db.setDatabaseName(params['database']) db.setUserName(params['user']) db.setPassword(params['password']) # db.open() if not db.open(): msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Critical) msg.setText("Error in Database connection") retval = msg.exec_() return False msg = QtWidgets.QMessageBox() msg.setIcon(QtWidgets.QMessageBox.Information) msg.setText("Database connection established !") retval = msg.exec_() """créer une table "matable" """ query = QtSql.QSqlQuery() # efface la table 'matable' si elle existe déjà query.exec_('DROP TABLE IF EXISTS %s' % matable) # crée la table 'matable' query.exec_('CREATE TABLE %s (num INT PRIMARY KEY, dig VARCHAR, nbf VARCHAR, mot VARCHAR)' % matable) # remplit la table avec des données au hasard for i in range(0, 10): pnum = random.randint(10000, 99999) pdig = "'" + creamot() + "'" pnbf = "'" + creamot() + "'" pmot = "'" + creamot() + "'" val = (matable, pnum, pdig, pnbf, pmot) query.exec_("INSERT INTO %s(num, dig, nbf, mot) VALUES (%s, %s, %s, %s)" % val) # db.commit() return True ############################################################################# if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) matable = 'tabletest' creatable(matable)