Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions Exercices/Amaury/Contacts/app.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-- Database: app

-- DROP DATABASE IF EXISTS app;

CREATE DATABASE app
WITH
OWNER = "user"
ENCODING = 'UTF8'
LC_COLLATE = 'en_US.utf8'
LC_CTYPE = 'en_US.utf8'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;

-- Table: public.contacts

-- DROP TABLE IF EXISTS public.contacts;

CREATE TABLE IF NOT EXISTS public.contacts
(
id integer NOT NULL DEFAULT nextval('contacts_id_seq'::regclass),
firstname character varying(30) COLLATE pg_catalog."default",
lastname character varying(30) COLLATE pg_catalog."default",
email character varying(45) COLLATE pg_catalog."default",
password character varying(100) COLLATE pg_catalog."default",
CONSTRAINT contacts_pkey PRIMARY KEY (id)
)

TABLESPACE pg_default;

ALTER TABLE IF EXISTS public.contacts
OWNER to "user";
13 changes: 13 additions & 0 deletions Exercices/Amaury/Contacts/app/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension
import psycopg2

app = Flask("app")
app.config['SECRET_KEY'] = "Rg@O<z7Jd$C%j;C,aKD?O`8fwC(1$'E~"
app.debug = True

toolbar = DebugToolbarExtension(app)

conn = psycopg2.connect(dbname='app', user='user', password='1234', host='127.0.0.1', port='5435')

from app.controllers import *
Binary file not shown.
4 changes: 4 additions & 0 deletions Exercices/Amaury/Contacts/app/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import os
import glob

__all__ = [os.path.basename(f)[: - 3] for f in glob.glob(os.path.dirname(__file__) + "/*.py")]
Binary file not shown.
Binary file not shown.
24 changes: 24 additions & 0 deletions Exercices/Amaury/Contacts/app/controllers/contactController.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from requests import request
from app import app
from flask import render_template, request
from app.forms.contactForm import ContactForm
from app.services.contactService import ContactService
from app.forms.contactForm import ContactForm

contactService = ContactService()

class ContactController:
@app.route('/contact', methods=['GET'])
def getContacts():
datas = contactService.findAll()
return render_template('page.html', datas = datas)

@app.route('/contact', methods=['POST'])
def postContact():
form = ContactForm(request.form)

if form.validate():
data = contactService.insert(form)
return render_template('page.html', data = data)

return render_template('page.html', form = form, errors = form.errors)
Binary file not shown.
12 changes: 12 additions & 0 deletions Exercices/Amaury/Contacts/app/forms/contactForm.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from flask_wtf import FlaskForm
from wtforms import StringField, IntegerField
from wtforms.validators import DataRequired

class ContactForm(FlaskForm):
class Meta:
csrf = False

firstname = StringField("firstname", validators=[DataRequired()])
lastname = StringField("lastname", validators=[DataRequired()])
email = StringField("email", validators=[DataRequired()])
password = StringField("password", validators=[DataRequired()])
Binary file not shown.
7 changes: 7 additions & 0 deletions Exercices/Amaury/Contacts/app/models/contact.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class Contact:
def __init__(self, id, firstname: str, lastname: str, email: str, password: str) -> None:
self.id = id
self.firstname = firstname
self.lastname = lastname
self.email = email
self.password = password
Binary file not shown.
25 changes: 25 additions & 0 deletions Exercices/Amaury/Contacts/app/services/contactService.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from app import conn
from app.forms.contactForm import ContactForm
from app.models.contact import Contact

class ContactService:
def __init__(self) -> None:
pass

def findAll(self):
cur = conn.cursor()
cur.execute("SELECT * FROM contacts;")
datas = []
for data in cur.fetchall():
datas.append(Contact(data[0], data[1], data[2], data[3], data[4]))

return datas

def insert(self, data: ContactForm):
cur = conn.cursor()

cur.execute("INSERT INTO contacts(firstname, lastname, email, password) VALUES(%s, %s, %s, %s)",
(str(data.firstname.data), str(data.lastname.data), str(data.email.data), str(data.password.data)))
conn.commit()

return str(data.firstname.data) + ' ' + str(data.lastname.data)
34 changes: 34 additions & 0 deletions Exercices/Amaury/Contacts/app/templates/page.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<title>Contact Application</title>
</head>

<body>
<h1>Subscribe:</h1>

<form id="contact" method="post">
<input type="text" name="firstname" placeholder="firstname" required>
<input type="text" name="lastname" placeholder="lastname" required>
<input type="text" name="email" placeholder="email" required>
<input type="text" name="password" placeholder="password" required>

<input type="submit" value="Send">
</form>
<p>
{% if data %}
New contact added: {{ data }}
{% endif %}
{% if datas %}
{% for data in datas %}
Identity: {{ data.firstname }} {{ data.lastname }} | Contact: {{ data.email }} <br>
{% endfor %}
{% endif %}
{% if errors %}
{% for key, val in errors.items() %}
{{ key }} {{ val }}
{% endfor %}
{% endif %}
</p>
</body>
</html>
19 changes: 19 additions & 0 deletions Exercices/Amaury/Contacts/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: '3.8'

services:
db:
image: postgres:13.7
environment:
POSTGRES_PASSWORD: 1234
POSTGRES_USER: user
POSTGRES_DB: app

ports:
- '5435:5432'

volumes:
- app-volume:/var/lib/postgresql/data
- ./init_db:/init_db

volumes:
app-volume:
5 changes: 5 additions & 0 deletions Exercices/Amaury/Contacts/server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import os
from app import app

port = int(os.environ.get('PORT', 8080))
app.run('0.0.0.0', port=port)
3 changes: 3 additions & 0 deletions Exercices/Amaury/MVC/app/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
from flask import Flask, render_template
from flask_debugtoolbar import DebugToolbarExtension
import psycopg2

app = Flask("app")
app.config['SECRET_KEY'] = 'random'
app.debug = True

toolbar = DebugToolbarExtension(app)

conn = psycopg2.connect(dbname='mvc', user='user', password='1234', host='127.0.0.1', port='5435')

from app.controllers import *
33 changes: 33 additions & 0 deletions Exercices/Amaury/MVC/app/controllers/DbController.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from requests import request
from app import app
from flask import render_template, request
from app.forms.dbForm import DbForm
from app.services.DbService import DbService

from app.forms.form import Form

dbService = DbService()

class DbController:
@app.route('/db', methods=['GET'])
def getAllDatas():
datas = dbService.findAll()
return render_template('db/db.html', datas=datas)

@app.route('/db/<int:id>', methods=['GET'])
def getOneData(id):
data = dbService.findOne(id)
return render_template('db/info.html', data=data)

@app.route('/db/add', methods=['GET', 'POST'])
def postTest():
form = DbForm(request.form)

if request.method == 'POST':
if form.validate():
data = DbService.insert(form)
return render_template('db/info.html', data=data)

return render_template('db/add.html', errors=form.errors)

return render_template('db/add.html', example="POST")
10 changes: 10 additions & 0 deletions Exercices/Amaury/MVC/app/forms/dbForm.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from flask_wtf import FlaskForm
from wtforms import StringField, IntegerField
from wtforms.validators import DataRequired

class DbForm(FlaskForm):
class Meta:
csrf = False

testid = IntegerField("id", validators=[DataRequired()])
testtext = StringField("text", validators=[DataRequired()])
4 changes: 4 additions & 0 deletions Exercices/Amaury/MVC/app/models/db.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
class Db:
def __init__(self, id: int, text: str) -> None:
self.id = id
self.text = text
30 changes: 30 additions & 0 deletions Exercices/Amaury/MVC/app/services/DbServices.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from app import conn
from app.forms.dbForm import DbForm
from app.models.db import Db

class DbService:
def __init__(self) -> None:
pass

def findAll(self):
cur = conn.cursor()
cur.execute("SELECT * FROM dbDatas")
datas = []
for data in cur.fetchall():
datas.append(Db(data[0], data[1]))

return tests

def findOne(self, testid):
cur = conn.cursor()
cur.execute(f"SELECT * FROM dbDatas WHERE id = {id}")
data = cur.fetchone()

return Db(data[0], data[1])

def insert(self, data: DbForm):
cur = conn.cursor()
cur.execute("INSERT INTO dbDatas(id, contentText) VALUES(" + str(data.id.data) + ", '" + str(data.text.data) + "')")
conn.commit()

return self.findOne(int(data.id.data))
22 changes: 22 additions & 0 deletions Exercices/Amaury/MVC/app/templates/db/add.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<title>Amaury MVC</title>
</head>

<body>
<h1>{{ example }}</h1>

<form id="contact" method="post">
<input type="text" name="testid" placeholder="id" required>
<input type="text" name="testtext" placeholder="text" required>

<input type="submit" value="Send">
</form>
{% if errors %}
{% for key, val in errors.items() %}
{{ key }} {{ val }}
{% endfor %}
{% endif %}
</body>
</html>
14 changes: 14 additions & 0 deletions Exercices/Amaury/MVC/app/templates/db/db.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<title>Amaury MVC</title>
</head>

<body>
{% for data in datas %}
<div>
<a href="/db/{{ data.id }}">{{ data.text }}</a>
</div>
{% endfor %}
</body>
</html>
10 changes: 10 additions & 0 deletions Exercices/Amaury/MVC/app/templates/db/info.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<title>Amaury MVC</title>
</head>

<body>
<h1>{{ data.id }} {{ data.text }}</h1>
</body>
</html>
19 changes: 19 additions & 0 deletions Exercices/Amaury/MVC/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: '3.3'

services:
db:
image: postgres:13.7
environment:
POSTGRES_PASSWORD: 1234
POSTGRES_USER: user
POSTGRES_DB: mvc

ports:
- '5435:5432'

volumes:
- app-volume:/var/lib/postgresql/data
- ./init_db:/init_db

volumes:
app-volume:
7 changes: 7 additions & 0 deletions Exercices/Amaury/MVC/sql.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CREATE TABLE dbDatas(
id SERIAL PRIMARY KEY
contentText VARCHAR(81)
);



5 changes: 4 additions & 1 deletion Exercices/Claire/03_MVC/app/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
from flask import Flask, render_template
from flask_debugtoolbar import DebugToolbarExtension
import psycopg2

app = Flask("app")
app.config['SECRET_KEY'] = 'random'
app.debug = True

toolbar = DebugToolbarExtension(app)

from app.controllers import *
conn = psycopg2.connect(dbname='app', user='app', password='1234', host='127.0.0.1', port='5435')

from app.controllers import *
Loading