This commit is contained in:
Alice 2018-02-02 21:04:51 +01:00
parent b411dc85e2
commit ff2e91f7be
3 changed files with 47 additions and 33 deletions

Binary file not shown.

View file

@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
d# -*- coding: utf-8 -*-
"""
Created on Mon Aug 21 13:54:39 2017

View file

@ -7,7 +7,7 @@ Created on Thu Feb 1 22:49:56 2018
"""
import sqlite3
import datetime.date
from datetime import date
"""TODO :
gérer liste acteurs : une autre table (id, idFilm, String acteur)
@ -30,43 +30,53 @@ class filmSQ():
conn.row_factory = sqlite3.Row
c = conn.cursor()
c.execute('INSERT INTO films VALUES (:i, :idN, :date, :nom, realisateur, :duree, :synopsis, :pays, :annee, :youtube, :couleur, :image, :formatCopie, :langST)', dic)
c.execute('INSERT INTO films VALUES (:i, :idN, :date, :nom, :realisateur, :duree, :synopsis, :pays, :annee, :youtube, :couleur, :image, :formatCopie, :langST)', dic)
acteursToSq = [{'idFilm' : self.i, 'acteur' : a} for a in dic['acteurs']]
c.executemany('INSERT INTO acteurs VALUES (NULL, :idFilm, :acteur)', acteursToSq)
conn.close()
conn.commit()
c.close()
#id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT [PRIMARY KEY]
def __setattr__(self, nom_attr, val_attr):
conn = sqlite3.connect("baseFilms.db")
conn.row_factory = sqlite3.Row
c = conn.cursor()
if nom_attr == 'acteurs':
c.execute('DELETE FROM acteurs WHERE idFilm =?', (self.i))
acteursToSq = [{'idFilm' : self.i, 'acteur' : a} for a in val_attr]
c.executemany('INSERT INTO acteurs VALUES (NULL, :idFilm, :acteur)', acteursToSq)
if nom_attr == 'idN':
res= object.__setattr__(self, 'idN', val_attr)
else:
c.execute('UPDATE films SET ? = ? WHERE idN = ?', (nom_attr, val_attr, self.idN))
conn = sqlite3.connect("baseFilms.db")
conn.row_factory = sqlite3.Row
c = conn.cursor()
conn.close()
if nom_attr == 'acteurs':
c.execute('DELETE FROM acteurs WHERE idFilm =?', (self.i))
acteursToSq = [{'idFilm' : self.i, 'acteur' : a} for a in val_attr]
c.executemany('INSERT INTO acteurs VALUES (NULL, :idFilm, :acteur)', acteursToSq)
else:
c.execute('UPDATE films SET ? = ? WHERE idN = ?', (nom_attr, val_attr, self.idN))
conn.commit()
c.close()
def __getattr__(self, nom):
conn = sqlite3.connect("baseFilms.db")
conn.row_factory = sqlite3.Row
c = conn.cursor()
if nom == 'acteurs':
c.execute('SELECT :acteur FROM acteurs WHERE idFilms=?', (self.i))
r = c.fetchall()
res = [a[0] for a in r]
else:
c.execute('SELECT :nom_attr FROM films WHERE idN=:idN', {"idN":self.idN, "nom_attr":nom})
r = c.fetchone()
res = r[0]
conn.close()
if nom == 'idN':
res= object.__getattr__(self, idN)
else:
conn = sqlite3.connect("baseFilms.db")
conn.row_factory = sqlite3.Row
c = conn.cursor()
if nom == 'acteurs':
c.execute('SELECT :acteur FROM acteurs WHERE idFilms=?', (self.i))
r = c.fetchall()
res = [a[0] for a in r]
else:
c.execute('SELECT :nom_attr FROM films WHERE idN=:idN', {"idN":self.idN, "nom_attr":nom})
r = c.fetchone()
res = r[0]
conn.close()
return res
@ -79,7 +89,8 @@ class filmSQ():
r = c.fetchone()
s = r[0] + ' : ' + r[1] + ' le ' + r[2]
conn.close()
conn.commit()
c.close()
return s
@ -205,7 +216,8 @@ class filmSQ():
for movie in r:
print(r[0] + ' : ' + r[1] + ' le ' + r[2])
conn.close()
conn.commit()
c.close()
pass
def strListe(liste):
@ -223,18 +235,20 @@ def newFilm():
dic['i'] = i+1
dic['idN'] = input("identifiant du film ? ")
dic['date'] = input("date de la séance (format mardi JJ MOIS AAAA) ")
d = eval(input("date de la séance (format (JJ, MM, AAAA) "))
dic['date'] = date(d[2], d[1], d[0])
dic['nom'] = input("titre ? ")
dic['acteurs'] = eval(input("acteurs (format [acteur1, acteur2, ..]) ? "))
dic['realisateur'] = input("realisateur ? ")
dic['duree'] = input("durée du film ? ")
dic['duree'] = eval(input("durée du film (en minutes)? "))
dic['synopsis'] = input("Donnez ici un synopsis rapide du film ")
dic['pays'] = input("pays de diffusion du film ? ")
dic['annee'] = input("année de sortie du film (format AAAA) ? ")
dic['youtube'] = input("adresse youtube de la bande-annonce ? ")
dic['image'] = input("url d'une affiche du film ? ")
dic['couleur'] = eval(input("le film est-il en couleur (format True/False) ? "))
dic['formatCopie'] = input("format de la copie ?")
dic['langST'] = input("langue et sous-titre : VO/VOSTFR ?")
dic['formatCopie'] = input("format de la copie ? ")
dic['langST'] = input("langue et sous-titre : VF/VOSTFR ? ")
seance = filmSQ(dic)
return seance