Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

valeur du hash de base de donnee post modification

+1 vote

j' utilise sqlalchemy.
En demarrant mon programme, celui ci verifie si la base de donnée (fichier "database.sqlite") est presente.
Si ce n'est pas le cas, une fonction regenere une base de donnée minimale avec quelques tables
chacune avec quelques entrées.
Mais il se trouve que dans le pire des cas, je me retrouve toujours avec un fichier database.sqlite
vide a cause de ceci:

from sqlalchemy import create_engine
engine = create_engine('sqlite:///database.sqlite')

ce n'est pas grave, je vais tester le hash du fichier et je verrai bien si il est vide ou si il correspond a ma bdd officielle.
Sauf que là encore, vide ou pas, je me retrouve avec le même hash md5 et sha256.
C'est ça qui m' étonne.

def check_database():
    file_name = "database.sqlite"
    official_example_MD5 = '9a87af2ae499e518b9b812e8e16af513'
    official_example_sha256 = 'c0b199ff23db4c2e483ece5c7f25ac62446ff21bbacb48152b24c829dd4a71e9'    

    file_name_UTF8 = file_name.encode('utf-8')

    DB_md5= hashlib.md5(file_name_UTF8).hexdigest()
    DB_sha256= hashlib.sha256(file_name_UTF8).hexdigest()
    print(DB_md5)
    print(DB_sha256)

    cur_dir = os.getcwd()
    file_list = os.listdir(cur_dir)
    if file_name in file_list:
        print("OK : database found")
        if DB_md5 == official_example_MD5:
            print("ok : MD5 matches")
        else:
            print("caution : MD5 anormal, maybe database empty")
    else:
        print("caution : database not found  ==> calling make_starting_DB fonction...\n")
        make_starting_DB()

check_database()
demandé 21-Mai par buffalo974 (2,468 points)

1 Réponse

+2 votes
 
Meilleure réponse
DB_md5= hashlib.md5(file_name_UTF8).hexdigest()

Tu hash le nom, il change pas lui. Tu dois hash le contenu du fichier

répondu 22-Mai par anonyme
sélectionné 22-Mai par buffalo974
...