1 of 34

�CEUG�Web programming and App mobile developement - 2eme

Harouna Diallo – Programme soutenu par le CEUG

2 of 34

Programme

  • HTML5 / CSS3
  • Python
  • Git / Github / Gitlab
  • JavaScript, ES6
  • SQL
  • Flask, Django
  • React, React-native
  • Attestation de junior développer délivré par le CEUG

Soyez des acteurs, pas de spectateurs

3 of 34

Plan

  • Python (bonus)
  • Flask, Django
  • HTML5 / CSS3 (bonus)
  • Déploiement (bonus)

DEUXIEME EDITION

4 of 34

Encore du python

5 of 34

Les importations

6 of 34

Les Exceptions

7 of 34

Les comprehensions de listes, sets, dictionnaires

8 of 34

Unpaking de list ou de tuple

9 of 34

Les décorateurs

10 of 34

Qu’est ce qu’un callable ?�C’est un Objet O que l’on peut appelé avec O()

  • Une fonction
  • Une Instance d’une classe qui implémente __call__

11 of 34

Qu’est ce qu’un décorateur ?�C’est un callable qui prend comme argument la fonction à décorer et retourne un callable

f = decorateur(f) 🡺 @decorateur

12 of 34

Les tests unitaires

13 of 34

Flask

Micro framework python

Documentation : http://flask.pocoo.org/

14 of 34

Django

Framework pour les perfectionnistes sous pressions

Documentation : https://djangoproject.com/

15 of 34

Micro-Framework vs Framework

16 of 34

MVT

17 of 34

Framework

  • Routage d’URL
  • Moteur de template
  • ORM
  • Design patterns (MVC)
  • Système d’authentification
  • Système de cache
  • ….

18 of 34

pip install flask

19 of 34

code minimal

from flask import Flask

app = Flask(__name__)

@app.route(‘/‘)

def welcome():

return “Hello, world”

if __name__ == “__main__”:

app.run(debug=True, port=8000)

20 of 34

Application de gestion d’articles

App0

21 of 34

4 vues

Page d’aceuil --- acceuil�Ajout article --- add�Liste des tous articles --- blog�Details d’un articles ---- detail

22 of 34

ORM : SQL_ACHEMY

23 of 34

Flask_SQLACHEMY

SQLALCHEMY_DATABASE_URI

SQlite : sqlite:///database/blog.db

MySQL : mysql+pymysql://username:password@localhost/mydatabase

PostgreSQL : postgresql+psycopg2://username:password@localhost/mydatabase

Oracle : oracle+cx_oracle://username:password@127.0.0.1:1521/mydatabase

En générale : dialect+driver://username:password@host:port/database

24 of 34

Flask_SQLACHEMY : Model

class User(db.Model):

__tablename__ = ‘Users’

id = db.Column(db.Integer, primary_key=True)

username = db.Column(db.String(80), unique=True, nullable=False)

email = db.Column(db.String(120), unique=True, nullable=False)

created_at = db.Column(db.DateTime, nullable=False, default=datetime.ucw)

25 of 34

Flask_SQLACHEMY : CRUD

Creat-INSERTION

q=User()

q.username = ‘charlie’

q.email = ‘charlie12@gmail.com

db.session.add(q)

db.session.commit()

q=User(username=’charlie’, email=’charlie12@gmail.com’)

db.session.add(q)

db.session.commit()

26 of 34

Flask_SQLACHEMY : CRUD

Read-Lecture

User.query.all()

User.query.filter_by(username=’python’).first()

User.query.get(id)

User.query.limit(50).all()

27 of 34

Flask_SQLACHEMY : CRUD

Update-Modification

q=User.query.filter_by(username=’python’).first()

q.username=’nouveauNom’

db.session.add(q)

28 of 34

Flask_SQLACHEMY : CRUD

Delete-Suppression

q=User.query.filter_by(username=’python’).first()

db.session.delete(q)

db.session.commit()

29 of 34

Django

Le Framework pour les perfectionnistes sous pressions

30 of 34

Le cloud

31 of 34

Type de cloud

  • Software As A Service :

  • Plateforme As A Service :

  • Infrastructure As A Service :

32 of 34

Héberger les apps sur Heroku

33 of 34

Aller plus loin

  • Se perfectionner en python (métaclasse, fonction génératrice, context manager, expression régulière…)
  • Approfondir flask (système d'authentification, session, cache, les tests unitaires et fonctionnels, API…)
  • Faire du Django pour des projets réutilisables.

34 of 34

Merci :-)

A la prochaine session...

En cas de besoin dans vos projets :

mhdiallo@misgroupe.com

623273737 / 669416210