Question

Je prévois de transférer une application PHP sur Python. L'application concerne principalement la collecte et le traitement de données. L'application principale s'exécute en tant qu'application en ligne de commande autonome. Il existe une interface Web pour l’application, qui est essentiellement une interface de génération de rapports très légère.

Je n’ai pas utilisé de framework dans la version PHP, mais, étant nouveau dans Python, je me demande s’il serait avantageux d’utiliser quelque chose comme Django ou à tout le moins Genshi. La mise en garde est que je ne veux pas que la distribution de mes applications soit submergée par les éléments de structure que je devrais distribuer avec l'application.

L'utilisation de la seule importation cgi en Python est-elle la meilleure solution dans de telles circonstances? J'aurais tendance à penser qu'un cadre est trop onéreux, mais peut-être que je ne pense pas à un très "python" chemin à leur sujet. Quelles suggestions avez-vous dans ce scénario?

Était-ce utile?

La solution

La ligne de commande Python, IMO, vient définitivement en premier. Faites que cela fonctionne, car c'est le cœur de ce que vous faites.

Le problème est que l'utilisation de l'ORM d'un framework Web à partir d'une application en ligne de commande n'est pas évidente. Django fournit des instructions spécifiques pour utiliser leur ORM à partir d'une application en ligne de commande. Celles-ci sont agaçantes au début, mais je pense qu’elles sauvent des vies à long terme. Je l'utilise beaucoup pour les envois géants de fichiers fournis par le client.

N'utilisez pas de CGI nu. Ce n'est pas impossible, mais trop de problèmes peuvent survenir et ils ont tous été résolus par les frameworks. Pourquoi réinventer quelque chose? Utilisez simplement le code de quelqu'un d'autre.

Les cadres impliquent l’apprentissage, mais pas de "frais généraux" réels. Ils ne sont pas lents. Ils sont du code que vous n'avez pas à écrire ou à déboguer.

  1. Apprenez du python.

  2. Suivez le didacticiel Django .

  3. Commencez à créer une application Web.

    a. Démarrer un projet Django. Construisez une petite application dans ce projet.

    b. Construisez votre nouveau modèle en utilisant l'ORM de Django. Créez un test unitaire Django pour le modèle. Assurez-vous que cela fonctionne. Vous pourrez utiliser les pages d’administration par défaut et jouer beaucoup. Ne créez pas encore le site Web entier .

  4. Faites fonctionner votre application de ligne de commande avec Django ORM. Essentiellement, vous devez affiner le fichier de paramètres pour que cette application fonctionne correctement. Consultez la section paramètres / configuration .

  5. Une fois que vous avez votre ligne de commande et l'administrateur par défaut en cours d'exécution, vous pouvez terminer l'application Web.

Voici la règle d'or des frameworks: C'est un code que vous n'avez pas besoin d'écrire, de déboguer ni de maintenir. Utilisez-les.

Autres conseils

Vous pourriez envisager d'utiliser quelque chose comme web.py , qui serait facile à distribuer (puisqu'il est petit) et qu'il Soyez également facile à adapter vos autres outils, car cela ne vous oblige pas à vous soumettre au cadre autant que Django.

Soyez prévenu, cependant, ce n’est pas le framework le plus aimé de la communauté Python, mais c’est peut-être ce qu’il vous faut. Vous pouvez également consulter web2py , mais j'en sais moins.

Dépend de la taille du projet. Si vous n'aviez que quelques scripts php précédents qui appelaient votre application autonome, alors je choisirais probablement une application cgi.

Si vous utilisez les bases de données, la réécriture d'URL, la création de modèles, la gestion des utilisateurs, etc., il est conseillé d'utiliser un cadre.

Et bien sûr, avant de le porter, déterminez si cela vaut la peine de changer de langue ou si vous avez besoin de fonctionnalités Python spécifiques.

Bonne chance!

J'ai récemment porté une application PHP sur Python à l'aide de web.py . En tant que frameworks, il est extrêmement léger, avec des dépendances minimales et tend à rester en dehors de votre chemin. C'est peut-être le compromis que vous recherchez.

Tout dépend toutefois de votre application initiale, car avec une application volumineuse, les avantages d'un framework complet gérant la plomberie ont tendance à l'emporter sur les inconvénients liés à la nécessité de traîner tout le code du framework.

Django permet de créer rapidement un site Web, c’est certain. Vous n'avez pas besoin d'être un maître Python pour l'utiliser, et comme sa conception est très pythonique, il n'y a pas vraiment de "magie". continue, cela vous aidera à apprendre le python en cours de route.

Commencez par les exemples, découvrez des screencasts Django de TwiD et vous serez sur votre chemin.

Commencez lentement, peaufinez l’administrateur et jouez avec cela via le shell, c’est le moyen de commencer. Une fois que vous maîtrisez l'ORM et comprenez comment les choses se passent, commencez à construire les vraies choses!

Le framework ne va pas causer de problèmes de performances, comme l'a dit S. Lott, c'est du code que vous n'avez pas à maintenir, et c'est le meilleur type.

Optez pour un framework. Les éléments de base tels que la gestion de session sont un cauchemar si vous n’en utilisez pas un car Python n’est pas spécialisé dans le Web comme PHP.

Si vous pensez que django est trop, vous pouvez en essayer un plus léger, comme le très petit mais toujours pratique web.py.

Pour l'amour de pete, utilisez un cadre! Il existe littéralement des dizaines de structures, allant de cherrypy à django en passant par les albatros de… eh bien… vous l'appelez. En fait, le grand nombre de cadres Web est ce que les gens soulignent lorsqu'ils se plaignent de la popularité de Rails.

La communauté de développement Web Python est divisée sans voix. Mais c’est un autre sujet! Le fait est qu'il existe des "kits d'outils Web". (par exemple, albatross) qui sont assez légers mais assez puissants pour vous aider à passer la journée (par exemple, l'auto-vérification d'un bot n'a pas simulé la simple soumission d'un formulaire, ni aidé à garder MVC propre).

Si vous voulez quelque chose qui ne soit pas un "cadre trop important" regardez ici:

http://wiki.python.org/moin/WebFrameworks

Consultez la rubrique "Cadres de base fournissant des modèles". Ils sont tous légers et font tout le "ne réinventez pas la roue". trucs sans forcer un camion Mac sur vous.

Cela dépend de la manière dont vous allez distribuer votre application.
S'il ne doit être utilisé qu'en interne, optez pour Django. C'est un plaisir de travailler avec. Cependant, Django échoue vraiment à la tâche de distribution; Les applications Django sont difficiles à configurer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top