from flask import Blueprint, Flask, request, flash, render_template, url_for, session, redirect, abort, make_response, send_file, escape, flash, abort from werkzeug.utils import secure_filename from wand.image import Image import time import sqlite3 import os profil = Blueprint('profil', __name__, template_folder='templates') DOSSIER_PERSO='users/' extensionimg = {'.jpg', '.JPG', '.png', '.PNG', '.gif', '.GIF', '.bmp', '.BMP', '.jpeg', '.JPEG' } @profil.route('/profil//', methods=['GET','POST'] ) def profile(username=None) : if 'username' in session : UTILISATEUR='%s' % escape(session['username']) conn = sqlite3.connect('base.db') # Connexion à la base de donnée cursor = conn.cursor() # Création de l'objet "curseur" cursor.execute("""SELECT avatar FROM users WHERE name=?""", (username,)) imageprofil = cursor.fetchone() conn.close() if request.method == 'POST' : f = request.files['fic'] nom = request.form['nom'] prenom = request.form['prenom'] age = request.form['age'] profession = request.form['profession'] if f: # On vérifie qu'un fichier a bien été envoyé nom = secure_filename(f.filename) f.save(DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom) image = DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom with Image(filename = image) as img: img.transform(resize='x80') img.save(filename = DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom) imagelocation = DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom conn = sqlite3.connect('base.db') # Connexion à la base de donnée cursor = conn.cursor() # Création de l'objet "curseur" cursor.execute("UPDATE users SET avatar=? WHERE name=?", (imagelocation, username)) conn.commit() cursor.execute("""SELECT avatar FROM users WHERE name=?""", (username,)) imageprofil = cursor.fetchone() conn.close() flash(u'Image de profil mise à jour', 'succes') return render_template('profil.html', imageprofil=imageprofil, username=username) else: # return render_template('profil.html', imageprofil=imageprofil, username=username) ####### Informations personnelles ####### if nom: if prenom: if age: if profession: conn = sqlite3.connect('base.db') # Connexion à la base de donnée cursor = conn.cursor() # Création de l'objet "curseur" cursor.execute("UPDATE users SET nom=?, prenom=?, age=?, profession=? WHERE name=?""", (nom, prenom, age, profession, username,)) conn.commit() conn.close() flash(u'Informations transmisent à la base', 'succes') return render_template('profil.html', imageprofil=imageprofil, username=username) else: flash(u'Veuillez renseigner une profession', 'error') return render_template('profil.html', imageprofil=imageprofil, username=username) else: flash(u'Veuillez renseigner votre âge', 'error') return render_template('profil.html', imageprofil=imageprofil, username=username) else: flash(u'Veuillez renseigner votre prénom', 'error') return render_template('profil.html', imageprofil=imageprofil, username=username) else: flash(u'Veuillez renseigner votre nom', 'error') return render_template('profil.html', imageprofil=imageprofil, username=username) else: conn = sqlite3.connect('base.db') # Connexion à la base de donnée cursor = conn.cursor() # Création de l'objet "curseur" cursor.execute("""SELECT avatar FROM users WHERE name=?""", (username,)) imageprofil = cursor.fetchone() conn.close() return render_template('profil.html', imageprofil=imageprofil, username=username) else : return redirect(url_for('loginlogout.login', _external=True))