From 6aedf00bd258180cac87d81f0ec357c80ebc8fee Mon Sep 17 00:00:00 2001 From: edouard Date: Sun, 12 Jun 2022 21:32:08 +0200 Subject: [PATCH] livraison sans DELETE et sans FINDID --- __pycache__/config.cpython-38.pyc | Bin 0 -> 358 bytes __pycache__/wrapper.cpython-38.pyc | Bin 0 -> 2503 bytes api.py | 76 +++++++++++++++++------------ config.py | 15 ++++-- wrapper.py | 31 +++++++----- 5 files changed, 74 insertions(+), 48 deletions(-) create mode 100644 __pycache__/config.cpython-38.pyc create mode 100644 __pycache__/wrapper.cpython-38.pyc diff --git a/__pycache__/config.cpython-38.pyc b/__pycache__/config.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a00c953d54121e21ebfebe75d6e67aa29dc53387 GIT binary patch literal 358 zcmWIL<>g`kg2$@MlFAr?G>C%?*nu1eATHJd5-AK(3@MCJj44b}OhC*G#4IVy3s_T` zQkhd3QW;ZO7P3aMrLY7uXtG9e=Hw?Q=49j-mqf7`8ylEaaU~XH>K0U%WaQ^n$>mlS z7v^XeRDx+Mef{cMtLj<@FbQP)X|mtq@{J4*^ojTI4-SE`1N?*F?9gD>pj(^}H38u+ zw>Th77pGfnY57IDi6ythf!ZB?oIPB9Bja5hLmZtPgI(i8gFII<6mbAO115gi>SyHV zrs@|Y7NzEu6zjX>Czs}eS^1?UnK{M!<@rU~#RZAUsrm@l>nG>urDdk;6;$5hu*uC& dDa}c>V*-Vd2#{c5WMKwkMiwSEMkWaS0|3t5V+8;J literal 0 HcmV?d00001 diff --git a/__pycache__/wrapper.cpython-38.pyc b/__pycache__/wrapper.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aa2acfb2f2f13b8c7d0ad007f43e435399651161 GIT binary patch literal 2503 zcmZ`*-EtE*6qfeS>y7Q0Bm_tUrGK>B4ly^}FfBtul0plC#$l3ZXm>W25|-?)9jy#F z*ts#cd55GIo#9pb2z%QrUZK;@^qgJWaVgc#9!W=9S>Ja)9r;PQ><}m$*M8gai-i1v zo$*qD&K-D@-@$OgX-FcS;jnJ3A3SJ0r$4`W7rOs+oieNAPQFPLBLkeFBPsDpcEK=)k zGi*n3YSont;=R;fUffvOxc_h^E!>Zl*b{Q?@JiH44#IC*ovgl9tG({sdfmH|S!lbI z89PDD8@QwKVnXK*yvb8Af-uSn(>P_iFoel9c=ThPSAjAqn(DuzSLB2$?UX*(yO3Ir>4|Yl zdbCS7Nydx`%sc>QG+<^*SzRq>W}EzKAa}rzb_C1}_vmtl&$0>;(lCpg`bB58+8evAVnE#>&9_JkVYhef=AUx#U# zK9Ggk47p9^7vTNZVb;JgLjD7E4rhkQQ42lL$^bEHVHpsE0syhurDKR`hL|4Fal~)6 zH4Hssm7k))-;tl8IRmH3&(ZNAQ0EYoABH1f$xWC#!c-Yz`VzeVAI)E2^l$++-=`Qq zc`egBeNXRzAXoh+iN78we`^q5RQ@2onexXY3$cdCW*SFs^T=9UgaX1jkDfEEc_3M( zoj{~j(;LkC5cc!=*a&(a)9+xt1Wy;n)CO&5n%10L)h_rO7|&tBoHdH=E9e|94S3MH zn!MGeC-jsolb`3GYCXMYDDZamuF;2UQ|YL8N)Beb8pa>E$ry@n05_<83EY?i?VJBm zf_Y?)D?wg^9|zeZL#Y`k5ha)ml&_S`_3<84RwjAo;DlhOtwh46hQ}M3Yqv1NrgT50 zFFvT9YCgjoEr8NaFpmtW!*uCTDG` zu3?FpgE?mtqyY|z892W(F#l$kLUwsDNP6*Zu*aN-+x4Fwc=sOFH-_!UkJd-+C-s$e zR?O!--dtvO-dtWvtzFobuh<3neDT5Edn*sOJ-F8wmlo?Q-jntFaOY;XKP%MpKMxtd z%vgfI3;6-OiaW}*iU&ucYBKa=IVH<3Sz@)n&9BGXm@ShVU`oK-RcdP%9KY;=R+eI^ S_LpJV$SJT|E!t%pOZguYT_xoJ literal 0 HcmV?d00001 diff --git a/api.py b/api.py index c09c71c..9dcdabc 100644 --- a/api.py +++ b/api.py @@ -1,3 +1,4 @@ +#!/usr/bin/python import wrapper from flask import Flask, jsonify, request @@ -18,50 +19,61 @@ def get_all_personnes(): if result: return jsonify(status="True", result= [ - {"idPersonne":personne.idPersonne, + {"id":personne.id, "nom":personne.nom, "prenom":personne.prenom, "dateNaissance":personne.dateNaissance, "tel": personne.tel} for personne in result.all() ]) - return jsonify(status="False") + return jsonify(status="False", result = [{"personne":"inconnu"}]) @app.route('/api/v1/personnes/', methods=['GET']) def get_personne(id): result = wrapper.get_personne_by_id(id) if result: return jsonify(status="True", - result={"nom":result.nom, + result={"id":result.id, + "nom":result.nom, "prenom":result.prenom, - "email":result.email, - "ville": result.ville, -"telephone": result.telephone} -) -return jsonify(status="False") + "dateNaissance":result.dateNaissance, + "tel": result.tel} + ) + return jsonify(status="False") -@app.route('/api/v1/user/&amp;amp;amp;lt;email&amp;amp;amp;gt;', methods=['PUT']) -def mofify_user(email): -result = wrapper.update_attribute(email, request.form.to_dict()) -if result: -return jsonify(status="True", -message= "updated", -result={ -"nom":result.nom, -"prenom":result.prenom, -"email":result.email, -"ville": result.ville, -"telephone": result.telephone} -) -return jsonify(status= "False") +@app.route('/api/v1/personnes/', methods=['PUT']) +def modify_personne(id): + result = wrapper.update_attribute(id, request.form.to_dict()) + if result: + return jsonify(status="True", + message= "updated", + result={"id":result.id, + "nom":result.nom, + "prenom":result.prenom, + "dateNaissance":result.dateNaissance, + "tel": result.tel} + ) + return jsonify(status= "False") -@app.route('/api/v1/user/&amp;amp;amp;lt;email&amp;amp;amp;gt;', methods=['DELETE']) -def delete_user(email): -result = wrapper.delete_user_by_id(email) -if result: -return jsonify(status="True", -message= "Deleted", -email=email -) -return jsonify(status="False") +@app.route('/api/v1/user/', methods=['DELETE']) +def delete_personne(id): + result = wrapper.delete_personne_by_id(id) + if result: + return jsonify(status="True", + message= "Deleted", + id=id + ) + return jsonify(status="False") + +@app.route('/api/v1/personnes/findid', methods=['GET']) +def find_id(): + result = wrapper.find_id() + if result: + return jsonify(status="True", + result={"id":result.id, + } + ) + return jsonify(status="False find id") + if __name__ == '__main__': -app.run(host='0.0.0.0', port=5000, debug=True) \ No newline at end of file + app.run(host='0.0.0.0', port=5000, debug=True) + diff --git a/config.py b/config.py index 97fc3a6..d77856b 100644 --- a/config.py +++ b/config.py @@ -1,11 +1,16 @@ -MYSQL_HOST = "172.18.0.3" -MYSQL_PORT = 3306 -MYSQL_USER = "api-python" -MYSQL_PWD = "api-python" +#MYSQL_HOST = '172.18.0.3' +MYSQL_HOST = 'localhost' +MYSQL_PORT = '3306' +MYSQL_USER = "root" +MYSQL_PWD = "kamisama123" +#MYSQL_USER = "api-python" +#MYSQL_PWD = "api-python" MYSQL_DB = "api-python" SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{}:{}@{}:{}/{}".format(MYSQL_USER, MYSQL_PWD, MYSQL_HOST, MYSQL_PORT, -MYSQL_DB) \ No newline at end of file +MYSQL_DB) + +#nécessite les modules sqlalchemy et flask de python \ No newline at end of file diff --git a/wrapper.py b/wrapper.py index 3c4cc31..b91d8c7 100644 --- a/wrapper.py +++ b/wrapper.py @@ -1,7 +1,6 @@ -from numpy import int32 from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME +from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME,Integer import config MYSQL_HOST = config.MYSQL_HOST @@ -15,7 +14,7 @@ MYSQL_PWD, MYSQL_HOST, MYSQL_PORT, MYSQL_DB) - + engine = create_engine(SQLALCHEMY_DATABASE_URI) Session = sessionmaker(bind=engine) session = Session() @@ -24,18 +23,18 @@ Base = declarative_base() class Personne(Base): # Cette classe correspond à la version objet de notre table personne __tablename__ = "personne" - idPersonne = Column(int32,unique=True,ForeignKey=True) - nom = Column(String(100), unique=False, nullable=False, primary_key=False) + id = Column(Integer,unique=True,primary_key=True) + nom = Column(String(100), unique=False, nullable=False) prenom = Column(String(100), nullable=False) dateNaissance = Column(DATETIME, nullable=False) tel = Column(String(12), nullable=False) -def add_personne(idPersonne, nom, prenom, dateNaissance, tel): +def add_personne(id, nom, prenom, dateNaissance, tel): try: - personne = Personne(idPersonne = idPersonne, + personne = Personne(id = id, nom = nom, prenom = prenom, - dateNaissance=dateNaissance, + dateNaissance = dateNaissance, tel=tel) session.add(personne) session.commit() @@ -61,10 +60,11 @@ def get_all_personnes(): return False def delete_personne_by_id(id): + #TODO: à controler try: - user_to_delete = get_personne_by_id(id) - if user_to_delete : - session.delete(user_to_delete) + personne_to_delete = get_personne_by_id(id) + if personne_to_delete : + session.delete(personne_to_delete) session.commit() return True else: @@ -85,4 +85,13 @@ def update_attribute(id, attributes): return False except Exception as e: print(e) + return False + +def find_id(): + #TODO trouver comment trouver le max d'un id. + try: + result = session.query(Personne).orderBy(id).first() + return result + except Exception as e: + print("erreur") return False \ No newline at end of file