I'm torn by this movie. I love Keanu as an actor and I love John Constantine as a character. I just don't love Keanu as John Constantine, at least not back then. Ironically, after seeing Keanu in John Wick, I wouldn't mind giving him another shot at the character.
I feel like he was miscast back then. His portrayal seemed more like a cool guy and not enough of the dangerous, adrenaline junkie that Constantine is supposed to be. Also, there were not enough shades of gray. And John Constantine is a very questionable hero. Sure, they gave him some flaws. But his flaws in the movie were really toned-down. In a way, Keanu's portrayal is "too neat".
Of course, if we consider when this was produced, then maybe that could explain why the film portrayed the character this way. After all, before The Dark Knight, most movies portrayed heroes as heroes. And before Deadpool, blockbuster hero movies don't go into Rated-R territory, which Hellblazer and Constantine should be, if they do a sequel.