IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Comparatif Server Python


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut Comparatif Server Python
    Bonjour à toutes et à tous,

    J'ai pour projet de passer de php à python pour mes dev web. Seulement j'ai beau avoir parcouru ce forum à dos de google, je n'ai rien trouvé de concluant ; bien que la question à été posée plusieurs fois.

    Voici donc ce que j'aimerais faire : intégrer python dans un environnement server de production à la manière php avec support MySQL. En n'utilisant python que pour le traitement des données à la manière de php, donc le moins possible pour me reposer sur XHTML/CSS.

    Pour MySQL, pas de soucis on est d'accord. Mais pour les solutions python, c'est un peu flou...

    - django
    - karrigell
    - mod_python

    Outre Zope qui semble ne pas correspondre, on ne trouve que ces trois solutions.
    Django semble le plus connu mais à la lecture de la doc, j'ai vu cette.. enfin ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <h1>{{ poll.question }}</h1>
     
    {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
     
    <form action="/polls/{{ poll.id }}/vote/" method="post">
    {% for choice in poll.choice_set.all %}
        <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
        <label for="choice{{ forloop.counter }}">{{ choice.choice }}</label><br />
    {% endfor %}
    <input type="submit" value="Voter" />
    </form>
    Et à vrai dire je suis resté... ->

    Même s'il est vrai qu'au vu des comparatifs de performance, essentiellement python django vs ruby on rails, django semble avoir une longueur d'avance.
    Mais ce genre de syntaxe est tout sauf pratique pour un mac user (et un cerveau humain assurément).

    Viens ensuite karrigell et son <% inclusion python %> très séduisante, je l'admet. Mais j'ai eu un peu peur quand j'ai vu la simplicité du code source. Est-il capable de tenir la charge ? D'être à l'épreuve des balles ? Et de faire la café si j'ai besoin ?
    J'entends par là être capable de résister à une attaque classique DDoS et d'accepter la cohabitation avec d'autres services. Néanmoins oui, c'est assez séduissant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <h1>
    La date courante est:
    <%
    import time
    print time.strftime("%d:%m:%y",time.localtime(time.time()))
    %>
    </h1>
    Reste Mod_python d'Apache avec 3 possibilités CGI (...), Publisher Handler (en gros si j'ai bien compris python qui sort du html) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def index():
       s = """\
    <html>
    <body>
    <h2>Hello World!</h2>
    </body>
    </html>
    """
       return s
    Pas top si on veut économiser au maximum les ressources.

    Et PSP Handler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%
    import time
    weekday = time.strftime('%A', time.localtime(time.time()))
    message = 'Hello World! This is a wonderful %s.' % weekday
    %>
    <html><body>
    <h2><%= message %></h2>
    </html></body>
    Qui semble être réellement intéressant, surtout que c'est Apache, mais les retours semblent très négatifs de ce que j'ai lu (peut être sont ils trop anciens).

    Et moi pauvre fou de python me voila lâchement confronté à toute ces solutions qui semblent, de ce que j'ai vu en tout cas, rarement comparées.

    J'aurais donc aimer connaitre vos avis sur le sujet du server web Python/MySQL en production.

  2. #2
    Membre expérimenté Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Par défaut
    Pour ma part j'ai trouvé django très adapté au développement (et je ne suis pas une star en web..).

    Ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <h1>
    La date courante est:
    <%
    import time
    print time.strftime("%d:%m:%y",time.localtime(time.time()))
    %>
    </h1>
    serait traduit sous django par
    1°) du code python pour initialiser la variable (toute la prog se fait sous python):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import time
    d=time.strftime("%d:%m:%y",time.localtime(time.time()))
    + quelques instructions pour charger la variable d dans un contexte et appeler la page html
    2°) Le code html deviendrait ultra simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h1>
    La date courante est:
    {{d}}
    </h1>
    Une syntaxe du type {{nom_dico.cle}} est pour une variable plus compliquée (dico, liste, objet)

    Je te propose de lire les 4 premiers chapitre du document suivant :
    http://djangobook.zindep.com/1.0/

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut
    Merci alexdevl,

    J'ai lu ton lien, le livre django est vraiment intéressant !

    Ce que je n'aime toujours pas c'est l'approche python only, au lieu de l'intégration de python dans les technologies actuelles comme Ajax. S'il faut soit même coder les balises avant de les inclure aussi c'est pas l'idéal.

    Merci beaucoup pour ta réponse

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Par défaut
    je crois que tu mélange un peu tout

    - django
    - karrigell
    => ces deux la ce sont des framework web
    - mod_python
    => ça c'est un module apache pour faire tourner du python sur le serveur il peux étre utilisé par les deux framework au dessus
    on ne trouve que ces trois solutions.

    Euh il y a beaucoup de framework web utilisant python
    dans les plus connus django, pylon, TurboGears ...

    Sinon pour lier ces sympathique framework on utilise presque plus mod_python (ou on essaye ..)
    mais mod_wsgi qui est plus sympatique
    http://code.google.com/p/modwsgi/

    Sinon je ne vois pas pourquoi tu n'aime pas la syntaxe de django c'est le principe des templates qui est utilisé par tous les bon framework
    si tu viens du php tu a peut étre utilisé synfony



    Ce que je n'aime toujours pas c'est l'approche python only, au lieu de l'intégration de python dans les technologies actuelles comme Ajax.
    C'est pas bien compliqué de rajouter de l'ajax avec django
    un framework javascript pour simplifier la vie(par exemple jquery)
    une vue django qui renvoie des donné en xml,json ou autre format texte et voila ...
    S'il faut soit même coder les balises avant de les inclure aussi c'est pas l'idéal.
    Pas compris

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut
    Merci pour ta réponse intéressante Tyrus.

    S'il faut soit même coder les balises avant de les inclure aussi c'est pas l'idéal.
    Pas compris

    Citation Envoyé par alexdevl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import time
    d=time.strftime("%d:%m:%y",time.localtime(time.time()))
    + quelques instructions pour charger la variable d dans un contexte et appeler la page html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h1>
    La date courante est:
    {{d}}
    </h1>
    Si on met {{d}} dans du code HTML sous django ça ne donnera rien, il faut d'abord spécifier le comportement et les variables de cette balise.

    Sinon je suis bien d'accord il y a beaucoup de framework web utilisant python, seulement j'ai choisis les 3 principales solutions, à savoir utiliser django et sa syntaxe en {{{{{{{balise}}}}}}{{{{{balise2}}}}}} (), utiliser Karrigell et sa méthode <%python inside html%> ou utiliser ce bon vieux Apache pour faire tourner du python en autre chose que cgi (c'est à dire convertir du python en html).

    Karrigell est un server web et le server Apache peut être utiliser en parallele en production d'après ce que j'ai compris.

    Citation Envoyé par Tyrus
    C'est pas bien compliqué de rajouter de l'ajax avec django
    un framework javascript pour simplifier la vie(par exemple jquery)
    une vue django qui renvoie des donné en xml,json ou autre format texte et voila ...
    Tout à fait d'accord

    Je suis en train de tester Karrigell qui m'a l'air plus intéressant :

    Balise django style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    from HTMLTags import *
    print HTML(HEAD(TITLE('test'))+BODY('bonjour tout le monde'))
    Ces 2 lignes donnes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <HTML>
    <HEAD>
    <TITLE>test</TITLE>
    </HEAD>
    <BODY>bonjour tout le monde</BODY>
    </HTML>
    Pour ajouter une fonction de python classique dans la page html il suffit juste de placer le nom de la fonction ou du résultat. J'ai pu insérer css, jquery et une fonction d'affichage de la sortie d'un subprocess en 9 lignes de python qui donne une page html correctement formatée d'une 20aine de lignes avec le résultat.

    Pas mal donc mais je me demande s'il tiendrait en prod..

    Merci pour ton lien "modwsgi", mais c'est du cgi style non ?

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Par défaut
    Mouai
    je viens de regarder la doc de HTMLTag
    http://karrigell.sourceforge.net/fr/htmltags.htm
    ça me semble peut étre pratique pour faire des petit page mais pour faire un site d'une taille moyenne c'est un peu la mort .
    L'interet des template de django c'est d'avoir un meilleur découplage entre le designe du site et le code et donc plus facile à lire pour un designer.
    De plus l'utilisation de l'héritage des template est un grand plus

Discussions similaires

  1. [Comparatif] Éditeurs pour Python
    Par Guigui_ dans le forum Contribuez
    Réponses: 9
    Dernier message: 16/11/2011, 02h33
  2. [Comparatif] MS Sql Server BI suite 2005
    Par ygrim dans le forum Contribuez
    Réponses: 1
    Dernier message: 24/07/2009, 12h05
  3. choix server web python embarqué + ajax
    Par geekrider dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 12/01/2009, 13h51
  4. comparatif entre sql server et mysql
    Par zakaroh dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/04/2008, 22h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo