Suppression du blog par les post-it
This commit is contained in:
@@ -5,15 +5,10 @@ from flask import Blueprint, escape, render_template, session, redirect, url_for
|
||||
import time
|
||||
import sqlite3
|
||||
from markdown import markdown
|
||||
blog = Blueprint('blog', __name__, template_folder='templates')
|
||||
postit = Blueprint('post-it', __name__, template_folder='templates')
|
||||
|
||||
# Un bon gros bug de flask il ne faut pas mettre le meme nom d'une parti ici
|
||||
# a une fonction sinon ca fait une erreur
|
||||
# k/app.py", line 958, in register_blueprint
|
||||
# if blueprint.name in self.blueprints:
|
||||
#https://github.com/pallets/flask/issues/1327
|
||||
|
||||
@blog.route('/blog/', methods=['GET', 'POST'])
|
||||
@postit.route('/post-it/', methods=['GET', 'POST'])
|
||||
def racine_blog():
|
||||
if 'username' in session:
|
||||
UTILISATEUR='%s'% escape(session['username'])
|
||||
@@ -25,49 +20,30 @@ def racine_blog():
|
||||
TIME=time.strftime("%A %d %B %Y %H:%M:%S")
|
||||
conn = sqlite3.connect('base.db') # Connexion la base de donne
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
cursor.execute("""INSERT INTO posts(title, content, time, author, status) VALUES(?, ?, ?, ?, ?)""", (title, content, TIME, UTILISATEUR, status)) # Insérer des valeurs
|
||||
cursor.execute("""INSERT INTO posts(title, content, time, author, status) VALUES(?, ?, ?, ?, ?)""",
|
||||
(title, content, TIME, UTILISATEUR, status)) # Insérer des valeurs
|
||||
conn.commit()
|
||||
cursor.execute("""SELECT title, content, time, author, status, avatar, nom, prenom, age, profession FROM posts INNER JOIN users ON author = name AND status='public'""")
|
||||
posts = [dict(title=row[0], content=row[1], time=row[2], author=row[3], status=row[4], avatar=row[5], nom=row[6], prenom=row[7], age=row[8], profession=row[9]) for row in reversed(cursor.fetchall())]
|
||||
cursor.execute("""SELECT title, content, time, author, status, avatar, nom, prenom, age FROM posts INNER JOIN users ON author = name""")
|
||||
posts = [dict(title=row[0], content=row[1], time=row[2], author=row[3],
|
||||
status=row[4], avatar=row[5], nom=row[6], prenom=row[7], age=row[8])
|
||||
for row in reversed(cursor.fetchall())]
|
||||
conn.close()
|
||||
return render_template('blog.html', posts=posts)
|
||||
else:
|
||||
conn = sqlite3.connect('base.db') # Connexion à la base de donnée
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
cursor.execute("""SELECT title, content, time, author, status, avatar, nom, prenom, age, profession FROM posts INNER JOIN users ON author = name AND status='public'""")
|
||||
posts = [dict(title=row[0], content=row[1], time=row[2], author=row[3], status=row[4], avatar=row[5], nom=row[6], prenom=row[7], age=row[8], profession=row[9]) for row in reversed(cursor.fetchall())]
|
||||
cursor.execute("""SELECT title, content, time, author, status, avatar, nom, prenom, age FROM posts INNER JOIN users ON author = name""")
|
||||
posts = [dict(title=row[0], content=row[1], time=row[2], author=row[3],
|
||||
status=row[4], avatar=row[5], nom=row[6], prenom=row[7], age=row[8])
|
||||
for row in reversed(cursor.fetchall())]
|
||||
conn.close()
|
||||
return render_template('blog.html', posts=posts)
|
||||
else:
|
||||
return redirect(url_for('loginlogout.login', _external=True))
|
||||
|
||||
@blog.route('/blog/<username>')
|
||||
def members(username):
|
||||
conn = sqlite3.connect('base.db') # Connexion à la base de donnée
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
cursor.execute("""SELECT title, content, time, author, status FROM posts WHERE author=? AND status='public'""", (username,))
|
||||
posts = [dict(title=row[0], content=row[1], time=row[2], author=row[3], status=row[4]) for row in reversed(cursor.fetchall())]
|
||||
cursor.execute("""SELECT avatar, nom, prenom, age, profession FROM users WHERE name=?""", (username,))
|
||||
usersinfos = (cursor.fetchone())
|
||||
conn.close()
|
||||
return render_template('publicblog.html', username=username, posts=posts, usersinfos=usersinfos)
|
||||
|
||||
@blog.route('/privateblog/')
|
||||
def privateblog():
|
||||
UTILISATEUR='%s'% escape(session['username'])
|
||||
if 'username' in session :
|
||||
conn = sqlite3.connect('base.db') # Connexion à la base de donnée
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
cursor.execute("""SELECT title, content, time, author, status FROM posts WHERE author=? AND status='prive'""", (UTILISATEUR,))
|
||||
posts = [dict(title=row[0], content=row[1], time=row[2], author=row[3], status=row[4]) for row in reversed(cursor.fetchall())]
|
||||
cursor.execute("""SELECT avatar, nom, prenom, age, profession FROM users WHERE name=?""", (UTILISATEUR,))
|
||||
usersinfos = (cursor.fetchone())
|
||||
conn.close()
|
||||
return render_template('privateblog.html', UTILISATEUR=UTILISATEUR, posts=posts, usersinfos=usersinfos)
|
||||
else:
|
||||
return redirect(url_for('loginlogout.login', _external=True)) # sinon on redirige vers login
|
||||
|
||||
@blog.route('/delete/<post>')
|
||||
@postit.route('/delete/<post>')
|
||||
def delete(post):
|
||||
if 'username' in session :
|
||||
conn = sqlite3.connect('base.db') # Connexion à la base de donnée
|
||||
@@ -75,11 +51,11 @@ def delete(post):
|
||||
cursor.execute("""DELETE FROM posts WHERE title=?""", (post,))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return redirect(url_for('blog.racine_blog'))
|
||||
return redirect(url_for('post-it.racine_blog'))
|
||||
else:
|
||||
return redirect(url_for('loginlogout.login', _external=True)) # sinon on redirige vers login
|
||||
|
||||
@blog.route('/edit/<post>', methods=['GET', 'POST'])
|
||||
@postit.route('/edit/<post>', methods=['GET', 'POST'])
|
||||
def edit(post):
|
||||
if 'username' in session :
|
||||
if request.method == 'POST' :
|
||||
@@ -92,7 +68,7 @@ def edit(post):
|
||||
(newtitle, newcontent, newstatus, post,))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return redirect(url_for('blog.racine_blog'))
|
||||
return redirect(url_for('post-it.racine_blog'))
|
||||
else:
|
||||
conn = sqlite3.connect('base.db') # Connexion à la base de donnée
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
|
||||
@@ -19,13 +19,16 @@ def login() :
|
||||
users = cursor.fetchall()
|
||||
conn.close()
|
||||
password = request.form['passwd']
|
||||
for i in users:
|
||||
if i[0] == request.form['user'] and bcrypt.check_password_hash(i[1], password) is True:
|
||||
for user in users:
|
||||
print (user[0])
|
||||
passwd = str(user[1] )
|
||||
print ( passwd[2:(len(passwd)-1 )] )
|
||||
if user[0] == request.form['user'] and bcrypt.check_password_hash(user[1], password) is True:
|
||||
session['username'] = request.form['user']
|
||||
return redirect(url_for('filesupload.uploadfiles', _external=True))
|
||||
return redirect(url_for('profil.profile', _external=True))
|
||||
return redirect(url_for('loginlogout.login', _external=True))
|
||||
else:
|
||||
return render_template('login.html')
|
||||
return render_template('accueil.html')
|
||||
|
||||
@loginlogout.route( '/logout/' )
|
||||
def logout():
|
||||
|
||||
127
views/profil.py
127
views/profil.py
@@ -10,71 +10,68 @@ 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) :
|
||||
@profil.route('/profil/', methods=['GET','POST'] )
|
||||
def profile() :
|
||||
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.open(image) as img:
|
||||
img.tumbnails(resize='80x80')
|
||||
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)
|
||||
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, nom, prenom, age, mail_rescue FROM users WHERE name=?""", (UTILISATEUR,))
|
||||
tmp = (cursor.fetchone())
|
||||
profil_user = dict()
|
||||
profil_user['avatar'] = tmp[0]
|
||||
profil_user['nom'] = tmp[1]
|
||||
profil_user['prenom'] = tmp[2]
|
||||
profil_user['age'] = tmp[3]
|
||||
profil_user['mail_rescue'] = tmp[4]
|
||||
conn.close()
|
||||
|
||||
if request.method == 'POST' :
|
||||
|
||||
f = request.files['fic']
|
||||
if request.form['nom']:
|
||||
profil_user['nom'] = request.form['nom']
|
||||
if request.form['prenom']:
|
||||
profil_user['prenom'] = request.form['prenom']
|
||||
if request.form['age']:
|
||||
profil_user['age'] = request.form['age']
|
||||
if '@' in request.form['mail_rescue']:
|
||||
if len(request.form['mail_rescue']) > 4:
|
||||
profil_user['mail_rescue'] = request.form['mail_rescue']
|
||||
else:
|
||||
flash(u'Adresse de courriel invalide', 'error')
|
||||
else:
|
||||
flash(u'Adresse de courriel invalide', 'error')
|
||||
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.open(image) as img:
|
||||
img.tumbnails(resize='80x80')
|
||||
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, UTILISATEUR))
|
||||
conn.commit()
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
conn.close()
|
||||
flash(u'Image de profil mise à jour', 'succes')
|
||||
|
||||
else:
|
||||
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=?, mail_rescue=? WHERE name=?",
|
||||
(profil_user['nom'], profil_user['prenom'], profil_user['age'], profil_user['mail_rescue'],
|
||||
UTILISATEUR))
|
||||
conn.commit()
|
||||
flash(u'Le profil a été mis à jour', 'succes')
|
||||
|
||||
|
||||
|
||||
|
||||
return render_template('profil.html', profil=profil_user, username=UTILISATEUR)
|
||||
|
||||
else :
|
||||
return redirect(url_for('loginlogout.login', _external=True))
|
||||
return redirect(url_for('loginlogout.login', _external=True))
|
||||
|
||||
Reference in New Issue
Block a user