Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] des question

je viens de commencer

    16 juillet 2006 à 16:05:05

    je viens de commencer à faire du python (à cherché des tutos par ci par là)
    bon une question : le python je peux l'utiliser pour des applications Web ?
    si oui comment faire ? on a une page entièrement de python ou c'est "mélangé" avec de l'HTML ..
    merci d'y répondre j'aurais certenement d'autres questions
    • Partager sur Facebook
    • Partager sur Twitter
      16 juillet 2006 à 16:15:12

      oui le python peut être utiliser pour les applications web, je ne pense pas qu'il s'insère comme le php dans le code xhtml (maisje dit peut-être des bétise) bien sur le python peut être utilisé avec l'interface cgi mais il existe aussi un module python pour apache
      • Partager sur Facebook
      • Partager sur Twitter
        16 juillet 2006 à 17:12:23

        mon framework preferé :D :
        http://www.djangoproject.com/
        c'est plus complexe a comprendre au debut ...
        par exemple pour faire un systeme d'article ,
        je doit faire un fichier model.py pour decrire la base de donnée (et oui pas besoin d'ecrire de requete SQL) comme ceci et la mise en forme de la zone d'administration:
        from django.db import models
        categories = (
                                ("Python","Python"),
                                ("Django","Django"),
                                ("Web","Web"),
                                ("Divers","Divers"),)
         
        class Article(models.Model):
            titre = models.CharField("Titre",maxlength=100)
         
            url = models.SlugField("URL",prepopulate_from=("pre_name", "name"),help_text="l'ID Unique de l'article qui permet de le localiser et de l'afficher sur le frontend",unique=True)
         
            categorie = models.CharField("Categorie",maxlength=255, choices=categories, help_text="La Categorie de l'article")
         
            contenu = models.TextField("Contenu")
         
            modeWiki = models.BooleanField("Mode Wiki",help_text="Active la syntax Wiki , voir : <a href='/articles/Wiki-Syntax/'>Documentation Docutils</a>")
         
            date_publication = models.DateTimeField("Date de Publication",help_text="La Date ou l'article a eté validé")
         
            def __str__(self):
                return self.titre + "   (%s)" % self.url
         
            class Admin:
                search_fields = ["titre","url"]
                list_display = ("titre","url","modeWiki","date_publication","categorie")
                list_filter = ["modeWiki","date_publication","categorie"]
                fields = (
         
                (None, {
                    'fields': ('titre', 'url', 'categorie', 'contenu')
                }),     
         
                ('Options++', {
                    'classes': 'collapse',
                    'fields' : ('date_publication', 'modeWiki')
                }),)


        ca va automatiquement me generer une interface pour la gestion des articles :
        http://kedare.free.fr/SShots/Django/django1.jpg
        http://kedare.free.fr/SShots/Django/django2.jpg

        ensuite je doit decrire les "vues" :
        from Django1.articles.models import *
        from django.shortcuts import render_to_response , get_object_or_404
        from docutils.core import publish_parts

        def index(request):
            articles_by_titre = Article.objects.all().order_by('titre')
            cats = [i[1] for i in categories]
            return render_to_response('articles/index.html', {'latest_articles': articles_by_titre,'cats': cats})
           
           

        def view(request,code):
            article = Article.objects.get(url=code)
            if (article.modeWiki):
                article.contenu = publish_parts(article.contenu, writer_name="html")["html_body"]
            return render_to_response('articles/view.html', {'article': article})
           
           
        def categorie(request,code):
            articles = Article.objects.all()
            liste = []
            for article in articles:
              if (article.categorie == code):
                  liste.append(article)
            return render_to_response('articles/categorie.html',{'liste' : liste, 'cat' : code})


        et un template pour chaque , ici je vais mettre le template de la fonction categorie :
        {% include "header.html" %}
        Liste des articles Disponibles de la categorie {{cat}} : <br/>

        {% if liste %}
            <ul>
            {% for article in liste %}
                <li><a href="/articles/{{article.url}}">{{ article.titre }}</a></li>
            {% endfor %}
            </ul>
        {% else %}
            <p>Aucun article dans cette categorie !</p>
        {% endif %}
        {% include "footer.html" %}

        puis pour finir je doit regler le mapping des url avec des regex , je met que l'url du module d'article :
        #[MODULE ARTICLES]
        (r'^articles/$', 'Django1.articles.views.index'),                (r'^articles/Categorie:(?P<code>[\w-]+)/','Django1.articles.views.categorie'),
        (r'^articles/(?P<code>[\w-]+)/', 'Django1.articles.views.view'),


        ensuite je n'ai plus qu'a acceder par les url par exemple :
        /articles/ pour afficher la fonction index
        /articles/Categorie:MaCategorie pour afficher la fonction categorie avec comme argument MaCategorie
        /articles/MonArticle pour afficher la fonction view avec comme argument MonArticle

        ce qui donne au final pour /article/Categorie:Divers :
        http://kedare.free.fr/SShots/Django/django3.jpg

        voila une ptite introduction :D
        • Partager sur Facebook
        • Partager sur Twitter
          16 juillet 2006 à 18:38:23

          Ok merci beaucoup ! ;)
          maintenant me faut des tutos car on ouvre les balises pas toujours de la meme facon donc :'(
          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2006 à 18:39:21

            attention c'est pas du python dans le template , c'est la meme syntax , mais tu ecrit pas le script dedans , c'est juste un langage de template ,le script tu doit l'ecrire dans les vues , et les models
            • Partager sur Facebook
            • Partager sur Twitter
              16 juillet 2006 à 18:43:57

              kedare deja que je commence par un debut simple avant d'aller dans cce que tu fais par exemple qui est un peu plus compliqué :D
              j'y ferais plus attention quand j'aurais quelque bases

              Edit: j'ai mit sa
              <% print "test" %>

              et dans le navigateur cela ne l'interprete pas et avec mon hebergeur OVH le python est accepté
              • Partager sur Facebook
              • Partager sur Twitter

              [Python] des question

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown