La première application utilisant Python.
Mon application se bloque sur les appels pymysql, cette bibliothèque est-elle stable ?
Vous essayez simplement de vous connecter à une base de données MySQL ici, mais chaque package Python semble difficile à utiliser ? Dans n’importe quelle autre langue, c’est très simple et ne pose aucun problème étrange.
migrateFresh.py :
import pymysql.cursors import os import glob from bootstrap import * reset_database() migrate_and_seed()
Ensuite, j'ai bootstrap.py :
import pymysql.cursors from dotenv import load_dotenv import os import glob load_dotenv() def get_connection (database = ''): return pymysql.connect( host = os.environ.get("DB_HOST"), user = os.environ.get("DB_USER"), password = os.environ.get("DB_PASS"), database = database, cursorclass=pymysql.cursors.DictCursor) def reset_database(): connection = get_connection() with connection: with connection.cursor() as cursor: cursor.execute(f'DROP DATABASE IF EXISTS {os.environ.get("DB_NAME")};') cursor.execute(f'CREATE DATABASE {os.environ.get("DB_NAME")};') connection.commit() print('Database has been reset') def migrate_and_seed(): connection = get_connection(os.environ.get("DB_NAME")) with connection: with connection.cursor() as cursor: for f in sorted(glob.glob("migrations/*.sql")): print(f) with open(f, "r") as infile: query = infile.read() cursor.execute(query) connection.commit() with connection.cursor() as cursor: for f in sorted(glob.glob("seeders/*.sql")): print(f) with open(f, "r") as infile: query = infile.read() cursor.execute(query) connection.commit()
Je vous recommande de diviser les fonctions de migration et d'amorçage et de saisir le gestionnaire de contexte de connexion séparément dans chaque fonction :