Bonjour,

J'essaie de connecter Flask et MySQL, mais je ne récupère pas le status "success" de la création d'utilisateur....Je fais mes test avec POSTMAN, je reçois l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
{"message": "The method is not allowed for the requested URL."}
Je ne comprends pas de quelle "method" il parle, du POST ????....

Voici le code de "api.py":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from flask import Flask
from flask_restful import Resource, Api, reqparse
from flaskext.mysql import MySQL
 
app = Flask(__name__)
api = Api(app)
 
class CreateUser(Resource):
    def Post(self):
        try:
            # Parse the arguments
            parser = reqparse.RequestParser()
            parser.add_argument('email', type=str, help='Email address to create user')
            parser.add_argument('password', type=str, help='Password to create user')
            args = parser.parse_args()
 
            _userEmail = args['email']
            _userPassword = args['password']
 
            return {'Email': args['email'], 'Password': args['password']}
 
            mysql = MySQL()
            # MySQL configurations
            app.config['MYSQL_DATABASE_USER'] = 'root'
            app.config['MYSQL_DATABASE_DB'] = 'itemlistdb'
            app.config['MYSQL_DATABASE_HOST'] = 'localhost'
 
            mysql.init_app(app)
 
            conn = mysql.connect()
 
            cursor = conn.cursor()
 
            cursor.callproc('spCreateUser',(_userEmail,_userPassword))
            data = cursor.fetchall()
 
            if len(data) is 0:
               conn.commit()
               return {'StatusCode':'200','Message': 'User creation success'}
            else:
               return {'StatusCode':'1000','Message': str(data[0])}
 
        except Exception as e:
            return {'error': str(e)}
 
api.add_resource(CreateUser, '/CreateUser')
 
if __name__ == '__main__':
    app.run(debug=True)
J'utilise une procédure stockée pour écrire dans la DB, procédure "spCreateUser", voici son code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
BEGIN
 
if ( select exists (select 1 from tblUser where UserName = p_username) ) THEN
 
    select 'Username Exists !!';
 
ELSE
 
insert into tblUser
(
    UserName,
    Password
)
values
(
    p_Username,
    p_Password
);
 
END IF;
 
END
Merci d'avance !