81 lines
4.4 KiB
Python
81 lines
4.4 KiB
Python
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/<username>/', 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))
|