pywallter/views/profil.py

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 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))