issue75:python
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue75:python [2013/12/17 07:14] – fcm_-_ekel | issue75:python [2013/12/22 08:11] (Version actuelle) – fcm_-_ekel | ||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
• Then walk through the database getting show id and status if needed, and update database.** | • Then walk through the database getting show id and status if needed, and update database.** | ||
- | Cette fois, nous allons retravailler notre programme de base de données à partir des quelques articles précédents (numéros | + | Cette fois-ci, nous allons retravailler notre programme de base de données à partir des quelques articles précédents (les parties |
Tout d' | Tout d' | ||
Voici un aperçu brut : | Voici un aperçu brut : | ||
- | • Créer une connexion à la base de données | + | • Créer une connexion à la base de données, qui crée la base de données si nécessaire. |
- | • Créer un curseur à la base de données. | + | • Créer un pointeur sur la base de données. |
• Créer la table si elle n' | • Créer la table si elle n' | ||
• Attribuer le(s) dossier(s) vidéo à une variable. | • Attribuer le(s) dossier(s) vidéo à une variable. | ||
- | • Recherche | + | • Rechercher les fichiers vidéo |
- | • Obtenir le nom du fichier | + | • Obtenir le nom du fichier, le nom de la série, le numéro de la saison, le numéro de l' |
• Vérifiez si l' | • Vérifiez si l' | ||
- | • Si il n'est pas là, l' | + | • S'il n'y est pas, l' |
- | • Parcourir ensuite la base de données, obtenir l'id de l' | + | • Parcourir ensuite la base de données, obtenir l'id de la série |
**We will redesign the database to include another table and modify the existing data table. First, we will create our new table called Series. It will hold all the information about the tv series we have on our system. The new table will include the following fields: | **We will redesign the database to include another table and modify the existing data table. First, we will create our new table called Series. It will hold all the information about the tv series we have on our system. The new table will include the following fields: | ||
Ligne 45: | Ligne 45: | ||
** | ** | ||
- | Nous allons repenser la base de données pour inclure une autre table et modifier la table de données existante. Tout d' | + | Nous allons repenser la base de données pour inclure une autre table et modifier la table de données existante. Tout d' |
• PKID. | • PKID. | ||
• Nom de la série. | • Nom de la série. | ||
- | • TvRage série | + | • ID série TvRage. |
• Nombre de saisons. | • Nombre de saisons. | ||
• Date de début. | • Date de début. | ||
• Drapeau de fin. | • Drapeau de fin. | ||
• Pays d' | • Pays d' | ||
- | • Statut de la série (terminé, courant, etc). | + | • Statut de la série (terminé, courant, etc.). |
- | • Classification (script, | + | • Classification (à partir d' |
• Résumé de l' | • Résumé de l' | ||
• Genres. | • Genres. | ||
Ligne 78: | Ligne 78: | ||
sqlquery = ' | sqlquery = ' | ||
- | Nous pouvons utiliser la routine | + | Nous pouvons utiliser la routine |
- | L' | + | L' |
- | Maintenant, nous devons modifier notre routine | + | Maintenant, nous devons modifier notre routine |
Remplacez la ligne qui dit | Remplacez la ligne qui dit | ||
- | sqlquery = ' | + | sqlquery = ' |
par | par | ||
- | sqlquery = ' | + | sqlquery = ' |
**This (to refresh your memory) will check to see if we have already put the series into the table. Now find the two lines that say: | **This (to refresh your memory) will check to see if we have already put the series into the table. Now find the two lines that say: | ||
Ligne 102: | Ligne 102: | ||
cursor.execute(sql, | cursor.execute(sql, | ||
- | Cela (pour vous rafraîchir la mémoire) va vérifier si nous avons déjà mis les séries dans la table. | + | Cela (pour vous rafraîchir la mémoire) va vérifier si nous avons déjà mis les séries dans la table. |
- | sql = ' | + | Maintenant, trouver les deux lignes qui disent : |
- | cursor.execute(sql, | + | |
+ | sql = ' | ||
+ | cursor.execute(sql, | ||
et les remplacer par | et les remplacer par | ||
- | sql = ' | + | sql = ' |
- | cursor.execute(sql, | + | cursor.execute(sql, |
**This will insert the series name (showname), path to the series, and a “-1” as the TvRage id. We use the “-1” | **This will insert the series name (showname), path to the series, and a “-1” as the TvRage id. We use the “-1” | ||
Ligne 118: | Ligne 120: | ||
Change the query string from | Change the query string from | ||
- | ** | + | |
sqlstring = " | sqlstring = " | ||
to | to | ||
- | sqlstring = " | + | sqlstring = " |
- | Ceci va insérer le nom de la série (showname), le chemin de la série, et un "-1" | + | Ceci va insérer le nom de la série (showname), le chemin de la série, et un « -1 » comme identifiant de TvRage. Nous utilisons le « -1 » comme un drapeau pour savoir que nous avons besoin |
- | Ensuite, nous allons retravailler la routine | + | Ensuite, nous allons retravailler la routine |
- | Modifiez la chaîne de requête de | + | Modifiez la chaîne de requête de : |
- | sqlstring = " | + | sqlstring = " |
- | en | + | en : |
- | sqlstring = " | + | sqlstring = " |
- | This will create a result-set that we can then use to query TvRage for each series. Now find/ | + | **This will create a result-set that we can then use to query TvRage for each series. Now find/ |
seriesname = x[0] | seriesname = x[0] | ||
Ligne 148: | Ligne 150: | ||
seriesname = x[1] | seriesname = x[1] | ||
+ | |||
+ | searchname = string.capwords(x[1]," | ||
+ | |||
+ | Cela va créer un ensemble de résultats que nous pourrons ensuite utiliser pour interroger TvRage pour chaque série. Maintenant, trouver/ | ||
+ | |||
+ | NomSerie = x[0] | ||
+ | |||
+ | searchname = string.capwords(x[0]," | ||
+ | |||
+ | par : | ||
+ | |||
+ | pkid = x[0] | ||
+ | |||
+ | NomSerie = x[1] | ||
searchname = string.capwords(x[1]," | searchname = string.capwords(x[1]," | ||
- | We will use the pkID for the update statement. Next we have to modify the call to the UpdateDatabase routine to include the pkid. Change the line | + | **We will use the pkID for the update statement. Next we have to modify the call to the UpdateDatabase routine to include the pkid. Change the line |
UpdateDatabase(seriesname, | UpdateDatabase(seriesname, | ||
Ligne 158: | Ligne 174: | ||
and change the line | and change the line | ||
+ | |||
GetShowStatus(seriesname, | GetShowStatus(seriesname, | ||
Ligne 163: | Ligne 180: | ||
GetShowData(seriesname, | GetShowData(seriesname, | ||
- | Which will be a new routine we will create in a moment. | + | Which will be a new routine we will create in a moment.** |
+ | |||
+ | Nous allons utiliser le PKID pour la déclaration de mise à jour. Ensuite, nous devrons modifier l' | ||
+ | |||
+ | Modifiez la ligne : | ||
+ | |||
+ | MettreAJourBase(NomSerie, | ||
+ | |||
+ | en : | ||
+ | MettreAJourBase(NomSerie, | ||
+ | |||
+ | et changez la ligne : | ||
+ | |||
+ | RecupereEtatEmission(NomSerie, | ||
+ | |||
+ | en : | ||
+ | |||
+ | RecupererDonneesEmission(NomSerie, | ||
+ | |||
+ | qui sera une nouvelle routine ; nous allons la créer dans un instant. | ||
+ | | ||
- | Next, change the definition of the UpdateDatabase routine from | + | **Next, change the definition of the UpdateDatabase routine from |
def UpdateDatabase(seriesname, | def UpdateDatabase(seriesname, | ||
Ligne 171: | Ligne 208: | ||
to | to | ||
- | def UpdateDatabase(seriesname, | + | def UpdateDatabase(seriesname, |
- | Next, we need to change the query string from | + | Ensuite, modifiez la définition de la routine de MettreAJourBase de : |
+ | |||
+ | def MettreAJourBase(NomSerie, | ||
+ | |||
+ | à : | ||
+ | |||
+ | def MettreAJourBase(NomSerie, | ||
+ | |||
+ | **Next, we need to change the query string from | ||
sqlstring = ' | sqlstring = ' | ||
Ligne 179: | Ligne 224: | ||
to | to | ||
- | sqlstring = ' | + | sqlstring = ' |
+ | |||
+ | Ensuite, nous devons changer la chaîne de requête de : | ||
+ | |||
+ | sqlstring = ' | ||
+ | |||
+ | en : | ||
+ | |||
+ | sqlstring = ' | ||
+ | |||
+ | **Now we need to create the GetShowData routine (top). We’ll grab the information from TvRage and insert it into the Series table. | ||
+ | |||
+ | Just as a memory refresher, we are creating an instance of the TvRage routines and creating a dictionary that holds the information on our series. We will then create variables to hold the data for updating the table (above).** | ||
- | Now we need to create the GetShowData | + | Maintenant, nous devons créer la routine |
- | Just as a memory refresher, we are creating an instance | + | En guise d' |
- | Remember that Genres come in as subelements and contain one or many genre listings. Luckily when we coded the TvRage routines, we created a string that holds all the genres, no matter how many are returned, so we can just use the genre string: | + | **Remember that Genres come in as subelements and contain one or many genre listings. Luckily when we coded the TvRage routines, we created a string that holds all the genres, no matter how many are returned, so we can just use the genre string: |
genres = dict[' | genres = dict[' | ||
runtime = dict[' | runtime = dict[' | ||
Ligne 193: | Ligne 250: | ||
airday = dict[' | airday = dict[' | ||
- | airtime = dict[' | + | airtime = dict[' |
- | Finally, we create the query string to do the update (bottom). Again, this should all be on one line, but I’ve broken it up here to make it easy to understand. | + | Rappelez-vous que Genres vient en tant que sous-élément et contient une ou plusieurs listes de genres. Heureusement, |
+ | |||
+ | genres = dict[' | ||
+ | runtime = dict[' | ||
+ | network = dict[' | ||
+ | airday = dict[' | ||
+ | airtime = dict[' | ||
+ | |||
+ | **Finally, we create the query string to do the update (bottom). Again, this should all be on one line, but I’ve broken it up here to make it easy to understand. | ||
The {number} portion (just to remind you) is similar to the “%s” formatting option. This creates our query string replacing the {number} with the actual data we want. Since we’ve already defined all of these fields as text, we want to use the double quotes to enclose the data being added. | The {number} portion (just to remind you) is similar to the “%s” formatting option. This creates our query string replacing the {number} with the actual data we want. Since we’ve already defined all of these fields as text, we want to use the double quotes to enclose the data being added. | ||
Ligne 201: | Ligne 266: | ||
And lastly, we write to the database (below). | And lastly, we write to the database (below). | ||
- | That is all for this time. Next time, we’ll continue as I laid out at the beginning of the article. Until next time, Enjoy. | + | That is all for this time. Next time, we’ll continue as I laid out at the beginning of the article. Until next time, Enjoy.** |
+ | |||
+ | Enfin, nous créons la chaîne de requête pour réaliser la mise à jour (en bas). Encore une fois, tout cela doit être sur une seule ligne, mais je l'ai cassée ici pour la rendre facile à comprendre. | ||
+ | |||
+ | La partie {number} (à titre d' | ||
+ | |||
+ | Et enfin, nous écrivons à la base de données (ci-dessous). | ||
+ | |||
+ | C'est tout pour cette fois-ci. La prochaine fois, nous allons continuer comme j'ai expliqué au début de l' |
issue75/python.1387260848.txt.gz · Dernière modification : 2013/12/17 07:14 de fcm_-_ekel