| 365 | | <li><a class="reference" href="#exemple-de-hello-world" id="id4" name="id4">Exemple de Hello World</a></li> |
|---|
| 366 | | <li><a class="reference" href="#avantages-inconv-nients" id="id5" name="id5">Avantages / Inconvénients</a></li> |
|---|
| 367 | | <li><a class="reference" href="#frameworks-haut-niveau" id="id6" name="id6">Frameworks haut niveau</a></li> |
|---|
| 368 | | <li><a class="reference" href="#django" id="id7" name="id7">Django</a></li> |
|---|
| 369 | | <li><a class="reference" href="#turbogears" id="id8" name="id8">TurboGears</a></li> |
|---|
| 370 | | <li><a class="reference" href="#zope" id="id9" name="id9">Zope</a></li> |
|---|
| 371 | | <li><a class="reference" href="#grok" id="id10" name="id10">Grok</a></li> |
|---|
| 372 | | <li><a class="reference" href="#id1" id="id11" name="id11">Avantages / Inconvénients</a></li> |
|---|
| 373 | | <li><a class="reference" href="#probl-matique-de-d-ploiement" id="id12" name="id12">Problématique de déploiement</a></li> |
|---|
| 374 | | <li><a class="reference" href="#utilisation-de-virtualenv" id="id13" name="id13">Utilisation de virtualenv</a></li> |
|---|
| 375 | | <li><a class="reference" href="#utilisation-de-zc-buildout" id="id14" name="id14">Utilisation de zc.buildout</a></li> |
|---|
| 376 | | <li><a class="reference" href="#b-tir-son-application" id="id15" name="id15">Bâtir son application</a></li> |
|---|
| 377 | | <li><a class="reference" href="#utilisation-de-distutils" id="id16" name="id16">Utilisation de distutils</a></li> |
|---|
| 378 | | <li><a class="reference" href="#wsgi-vous-sauve-la-vie" id="id17" name="id17">WSGI vous sauve la vie</a></li> |
|---|
| 379 | | <li><a class="reference" href="#composition" id="id18" name="id18">Composition</a></li> |
|---|
| 380 | | <li><a class="reference" href="#en-image" id="id19" name="id19">En image</a></li> |
|---|
| 381 | | <li><a class="reference" href="#serveur" id="id20" name="id20">Serveur</a></li> |
|---|
| 382 | | <li><a class="reference" href="#application" id="id21" name="id21">Application</a></li> |
|---|
| 383 | | <li><a class="reference" href="#la-variable-environ-1-2" id="id22" name="id22">La variable environ (1/2)</a></li> |
|---|
| 384 | | <li><a class="reference" href="#la-variable-environ-2-2" id="id23" name="id23">La variable environ (2/2)</a></li> |
|---|
| 385 | | <li><a class="reference" href="#monde-du-milieu-1-2" id="id24" name="id24">Monde du milieu (1/2)</a></li> |
|---|
| 386 | | <li><a class="reference" href="#monde-du-milieu-2-2" id="id25" name="id25">Monde du milieu (2/2)</a></li> |
|---|
| 387 | | <li><a class="reference" href="#une-implementation-paste" id="id26" name="id26">Une implementation: Paste</a></li> |
|---|
| 388 | | <li><a class="reference" href="#configuration-de-type-ini" id="id27" name="id27">Configuration de type INI</a></li> |
|---|
| 389 | | <li><a class="reference" href="#factory-1-2" id="id28" name="id28">Factory (1/2)</a></li> |
|---|
| 390 | | <li><a class="reference" href="#factory-2-2" id="id29" name="id29">Factory (2/2)</a></li> |
|---|
| 391 | | <li><a class="reference" href="#une-application-simple" id="id30" name="id30">Une application simple</a></li> |
|---|
| 392 | | <li><a class="reference" href="#l-ments-de-configuration-1-2" id="id31" name="id31">Éléments de configuration (1/2)</a></li> |
|---|
| 393 | | <li><a class="reference" href="#id2" id="id32" name="id32">Éléments de configuration (1/2)</a></li> |
|---|
| 394 | | <li><a class="reference" href="#les-frameworks" id="id33" name="id33">Les frameworks</a></li> |
|---|
| 395 | | <li><a class="reference" href="#en-savoir-plus" id="id34" name="id34">En savoir plus</a></li> |
|---|
| 396 | | <li><a class="reference" href="#ils-nous-soutiennent" id="id35" name="id35">Ils nous soutiennent</a></li> |
|---|
| 397 | | <li><a class="reference" href="#questions" id="id36" name="id36">Questions ?</a></li> |
|---|
| | 365 | <li><a class="reference" href="#exemple-web-py" id="id4" name="id4">Exemple web.py</a></li> |
|---|
| | 366 | <li><a class="reference" href="#pylons" id="id5" name="id5">Pylons</a></li> |
|---|
| | 367 | <li><a class="reference" href="#avantages-inconv-nients" id="id6" name="id6">Avantages / Inconvénients</a></li> |
|---|
| | 368 | <li><a class="reference" href="#frameworks-haut-niveau" id="id7" name="id7">Frameworks haut niveau</a></li> |
|---|
| | 369 | <li><a class="reference" href="#django" id="id8" name="id8">Django</a></li> |
|---|
| | 370 | <li><a class="reference" href="#turbogears" id="id9" name="id9">TurboGears</a></li> |
|---|
| | 371 | <li><a class="reference" href="#zope" id="id10" name="id10">Zope</a></li> |
|---|
| | 372 | <li><a class="reference" href="#grok" id="id11" name="id11">Grok</a></li> |
|---|
| | 373 | <li><a class="reference" href="#id1" id="id12" name="id12">Avantages / Inconvénients</a></li> |
|---|
| | 374 | <li><a class="reference" href="#probl-matique-d-ploiement" id="id13" name="id13">Problématique déploiement</a></li> |
|---|
| | 375 | <li><a class="reference" href="#utilisation-de-virtualenv" id="id14" name="id14">Utilisation de virtualenv</a></li> |
|---|
| | 376 | <li><a class="reference" href="#utilisation-de-zc-buildout" id="id15" name="id15">Utilisation de zc.buildout</a></li> |
|---|
| | 377 | <li><a class="reference" href="#b-tir-son-application" id="id16" name="id16">Bâtir son application</a></li> |
|---|
| | 378 | <li><a class="reference" href="#utilisation-de-distutils" id="id17" name="id17">Utilisation de distutils</a></li> |
|---|
| | 379 | <li><a class="reference" href="#les-points-d-entr-es" id="id18" name="id18">Les points d'entrées</a></li> |
|---|
| | 380 | <li><a class="reference" href="#wsgi-vous-sauve-la-vie" id="id19" name="id19">WSGI vous sauve la vie</a></li> |
|---|
| | 381 | <li><a class="reference" href="#composition" id="id20" name="id20">Composition</a></li> |
|---|
| | 382 | <li><a class="reference" href="#en-image" id="id21" name="id21">En image</a></li> |
|---|
| | 383 | <li><a class="reference" href="#application" id="id22" name="id22">Application</a></li> |
|---|
| | 384 | <li><a class="reference" href="#existant" id="id23" name="id23">Existant</a></li> |
|---|
| | 385 | <li><a class="reference" href="#la-variable-environ-1-2" id="id24" name="id24">La variable environ (1/2)</a></li> |
|---|
| | 386 | <li><a class="reference" href="#la-variable-environ-2-2" id="id25" name="id25">La variable environ (2/2)</a></li> |
|---|
| | 387 | <li><a class="reference" href="#monde-du-milieu-1-2" id="id26" name="id26">Monde du milieu (1/2)</a></li> |
|---|
| | 388 | <li><a class="reference" href="#monde-du-milieu-2-2" id="id27" name="id27">Monde du milieu (2/2)</a></li> |
|---|
| | 389 | <li><a class="reference" href="#id2" id="id28" name="id28">Existant</a></li> |
|---|
| | 390 | <li><a class="reference" href="#une-implementation-paste" id="id29" name="id29">Une implementation: Paste</a></li> |
|---|
| | 391 | <li><a class="reference" href="#configuration-de-type-ini" id="id30" name="id30">Configuration de type INI</a></li> |
|---|
| | 392 | <li><a class="reference" href="#une-application-simple" id="id31" name="id31">Une application simple</a></li> |
|---|
| | 393 | <li><a class="reference" href="#les-frameworks" id="id32" name="id32">Les frameworks</a></li> |
|---|
| | 394 | <li><a class="reference" href="#en-savoir-plus" id="id33" name="id33">En savoir plus</a></li> |
|---|
| | 395 | <li><a class="reference" href="#remerciements" id="id34" name="id34">Remerciements</a></li> |
|---|
| | 396 | <li><a class="reference" href="#questions" id="id35" name="id35">Questions ?</a></li> |
|---|
| 628 | | <blockquote> |
|---|
| 629 | | <ul class="simple"> |
|---|
| 630 | | <li>Configuration organisée en section</li> |
|---|
| 631 | | <li>Enchaînement de sections: serveur -> millieu(s) -> application(s)</li> |
|---|
| 632 | | <li>Configurable par un administrateur sans notion de python ni de developement.</li> |
|---|
| 633 | | </ul> |
|---|
| 634 | | </blockquote> |
|---|
| 635 | | </div> |
|---|
| 636 | | <div class="slide" id="factory-1-2"> |
|---|
| 637 | | <h1>Factory (1/2)</h1> |
|---|
| 638 | | <blockquote> |
|---|
| 639 | | <ul class="simple"> |
|---|
| 640 | | <li>Utilisation de points d'entrées pointant vers des factory</li> |
|---|
| 641 | | <li>Le factory renvois l'application après une éventuelle configuration</li> |
|---|
| 642 | | </ul> |
|---|
| 643 | | </blockquote> |
|---|
| 644 | | </div> |
|---|
| 645 | | <div class="slide" id="factory-2-2"> |
|---|
| 646 | | <h1>Factory (2/2)</h1> |
|---|
| 647 | | <p>Factory avec configuration:</p> |
|---|
| 648 | | <pre class="literal-block"> |
|---|
| 649 | | def mon_application(global_config, |
|---|
| 650 | | **local_config): |
|---|
| 651 | | # on utilise le factory |
|---|
| 652 | | #pour configurer la notification |
|---|
| 653 | | app = ErrorHandler(application, |
|---|
| 654 | | local_config['email']) |
|---|
| 655 | | return app |
|---|
| 656 | | </pre> |
|---|
| | 662 | <ul class="simple"> |
|---|
| | 663 | <li>Configuration organisée en sections</li> |
|---|
| | 664 | <li>Configurable par un administrateur |
|---|
| | 665 | sans notion de python ni de developement.</li> |
|---|
| | 666 | </ul> |
|---|
| 675 | | </div> |
|---|
| 676 | | <div class="slide" id="l-ments-de-configuration-1-2"> |
|---|
| 677 | | <h1>Éléments de configuration (1/2)</h1> |
|---|
| 678 | | <p>app: une application:</p> |
|---|
| 679 | | <pre class="literal-block"> |
|---|
| 680 | | [app:mon_application] |
|---|
| 681 | | use = egg:mon.package#ma_super_application |
|---|
| 682 | | </pre> |
|---|
| 683 | | <p>filter: monde du milieu:</p> |
|---|
| 684 | | <pre class="literal-block"> |
|---|
| 685 | | [filter:error_handler] |
|---|
| 686 | | use = egg:mon.package#error_handler |
|---|
| 687 | | </pre> |
|---|
| 688 | | <p>pipeline: permet un enchaînement monde du milieu / application:</p> |
|---|
| 689 | | <pre class="literal-block"> |
|---|
| 690 | | [pipeline:main] |
|---|
| 691 | | pipeline = error_handler mon_application |
|---|
| 692 | | </pre> |
|---|
| 693 | | </div> |
|---|
| 694 | | <div class="slide" id="id2"> |
|---|
| 695 | | <h1>Éléments de configuration (1/2)</h1> |
|---|
| 696 | | <p>composite: permet de combiner des applications:</p> |
|---|
| 697 | | <pre class="literal-block"> |
|---|
| 698 | | [composite:main] |
|---|
| 699 | | use = Paste#urlmap |
|---|
| 700 | | /app1 = mon_application |
|---|
| 701 | | /app2 = mon_application2 |
|---|
| 702 | | </pre> |
|---|
| 703 | | <p>server: permet un choix de serveur:</p> |
|---|
| 704 | | <pre class="literal-block"> |
|---|
| 705 | | [server:main] |
|---|
| 706 | | use = PasteScript#cherrypy |
|---|
| 707 | | host = 127.0.0.1 |
|---|
| 708 | | port = 5000 |
|---|
| 709 | | </pre> |
|---|
| 710 | | <p>Paste utilise les sections :main comme point d'entrée puis construit |
|---|
| 711 | | l'application</p> |
|---|