Ceci est une archive de l'ancien forum de Numerama. Il n'est plus accessible. Vous êtes probablement arrivés ici par erreur. Cliquez ici pour revenir sur la page d'accueil.

Connaissez-vous Django ?

Albert le 13/06/2017 à 11:28

Au boulot, on semble s’orienter vers le déploiement d’un outil développé en Python avec le framework Django. Outre le fait que pratiquement personne ne connaît Python chez nous, on est complètement vierge en ce qui concerne Django.

Est-ce que quelqu’un a eu une expérience de site développé en Django et peut en dire quelques mots sur les avantages, les inconvénients, la facilité ou non de mise en place, de déploiement, … ?

Merci d’avance

anon26079804 le 14/06/2017 à 09:50

Pourquoi tu as mis web2.0 dans les tags de ton post ? Je ne comprends pas.

Sinon, Django c’est opensource, tu ne devrais pas aimer du coup :confused:

Albert le 14/06/2017 à 10:11

Et c’est pour écrire ce genre de conneries que tu as perdu 30 secondes de ta vie ?

C’est un truc que j’avais remarqué avec certains membres de la communauté libriste française : surtout ne pas leur poser de question technique parce qu’ils vont te répondre avec des arguments idéologiques (à l’époque j’avais posé une question sur un problème de connexion entre PHP et Oracle et je m’étais fait insulter parce que j’utilisais Oracle… comme si c’était moi qui avais choisi). Merci de m’avoir confirmé que cet état d’esprit de merde n’a pas changé, je vais aller poser la question sur des forums américains qui sont beaucoup moins débiles.

anon26079804 le 14/06/2017 à 18:18

ahah :slight_smile: Monsieur est énervé ?

Tu peux poser des questions techniques, mais quand tu soutiens - avec des arguments à pleurer de rire - que pour certains cas le logiciel closed source c'est mieux et plus secure (licence blablabla), on se dit que tu ne connais rien à rien :smiley:

La bise.

Albert le 15/06/2017 à 07:14

Tu peux te dire ce que tu veux je m’en fous complètement.
Mais d’un côté on a une vision idéologique (la tienne) et de l’autre une vision pragmatique (la mienne) : utiliser le meilleur de tous les mondes possibles.

En attendant, j’ai posé une question : visiblement tu ne sais pas y répondre et donc comme tu as peur de ne pas exister, tu es venu balancer tes conneries idéologiques.

liolfil le 15/06/2017 à 12:30

C'est pour ainsi dire le cadriciel web standard de python, donc tu trouveras toujours quelqu'un pour développer dessus. Je ne l'ai jamais utilisé.
Il n'y a pas beaucoup d'information dans ton message, c'est une appli opensource ?

Pour le déploiement ce n'est pas propre à Django (mais à python), mais on utilise uWSGI ou Gunicorn.
Je te conseille l'excellent blog (un peu NSFW, selon ton entreprise) de Sam & Max (nginx + gunicorn + django).

Albert le 15/06/2017 à 12:47

Rassurant que ce soit le framework “standard” de Python.

Oui et qui va devenir stratégique pour notre structure. Développée en France par une société de 10 personnes. Ce qui fait un peu peur, c’est que si tu regardes dans GitHub, il n’y a qu’une seule personne qui intervient dessus pour des évolutions fonctionnelles et des corrections de bugs : le jour où elle se barre, que se passe t’il ?

Merci. C’est sûr que vu certaines illustrations et certains titres d’articles, je vais éviter de donner ça en référence à mon boss :slight_smile:
Je note par exemple que lors d’un changement de version de framework, la compatibilité n’a pas été complètement assurée.

anon26079804 le 15/06/2017 à 18:44

Étant donné que je ne fais que du Django (la rest framework plus précisément) et que tu n’as pas forcément tort, je t’apporte ma réponse :

Django c’est cool. Déjà parce que c’est du Python, ensuite l’abstraction de la base de données avec ces fameux Models est plutôt très bien faite.
De plus, Django est extrèmement modulable : avec les sources en ligne, jointes à la doc, tu peux facilement savoir quelle classe extends pour faire un truc un peu pointu.
Par exemple, je m’étais retrouvé à devoir faire une sorte de cutthrough en django : lorsqu’un user demandait /file// , je devais lui proposer le téléchargement d’un fichier, qu’il fallait récupérer avant sur un autre site (un peu comme un débrideur de fichier) MAIS en même temps déchiffrer bloc par bloc.
La solution de tout télécharger d’un coup, déchiffrer puis envoyer à l’user n’était pas concevable, il me fallait donc avoir un accès en stream sur la réponse de l’user. Grâce à la doc, avec HttpResponse et ce qui va bien avec, j’ai pu le faire très très facilement.

Je parlais plus haut de DRF (Django Rest Framework), c’est un excellent outil qui a la particularité de respecter entièrement les RFC concernant les méthodes HTTP peu courantes (style PUT, PATCH), ce qui rend bien plus logique certaines actions (modif. d’une valeur dans un objet déjà existant : tu PATCH, etc).

Malheureusement et comme tu l’as dit plus haut : à chaque LTS, certaines choses passent en deprecated, il faut alors revoir notre code. Mais la backtrace est assez explicite et ça va vite :slight_smile:

Certains diront que Django c’est nul car faut avoir un shell, faut config uwsgi en plus etc, mais ce n’est que de simples détails !

Du coup, je pense que tu vas te faire plaisir à bosser avec :wink:

Albert le 16/06/2017 à 09:47

Ce n'est pas moi qui vais bosser dessus du moins au niveau technique. Le fait que certaines fonctions passent en deprecated devra être pris en compte dans le processus de décision et devra, si on choisit cet outil, impliquer un gros focus sur les tests avant la mise en prod de chaque nouvelle version : c'est un site grand public et professionnel qui va toucher 1 million d'utilisateurs potentiels dont 50.000 pour une utilisation mensuelle régulière certaine. Donc autant dire que le droit aux erreurs 404 et 500 sera très très limité.

En tout cas, merci pour ta réponse, cela va me permettre de compléter ma grille d'analyse avantages/inconvénients afin que la direction puisse prendre sa décision.

anon26079804 le 17/06/2017 à 06:49

En PHP, certains se permettent de la modif en prod.
Je pense qu’avec Django c’est tout simplement impossible: un serveur de dev est bien évidemment indispensable. !

En espérant que ce soit Django qui soit choisi, pour le confort de ces quelques milliers d’users quotidiens :wink:

tass_ le 19/06/2017 à 08:06

De suite ces dénigrements entre langages... On peut faire les mêmes saloperies en php qu'en python hein.

Albert le 19/06/2017 à 08:32

Oui.
Il y a des technologies qui sont plus ou moins permissives au n’importe quoi.
Mais ce sont quand même les méthodes de travail mises en place qui permettent de fixer des bornes.
J’ai des développements en PHP bien documentés, avec des méthodes de développement écrites et maîtrisées (classes, MVC, règles de nommage, tests,…) et avec un cycle serveur de dev, serveur de pré-prod et serveur de prod bien maîtrisé.

anon26079804 le 19/06/2017 à 09:21

:joy:

BigBisous le 19/06/2017 à 11:17

J'aime beaucoup ce blog, merci pour la découverte. J'aime aussi beaucoup le slogan

Du code, du cul


Un ami à nous s'est glissé dans les commentaires de la catégorie Cul, saurez-vous le retrouver ?