Hello gens.
Pendant ma petite absence, j’ai concocté un nouveau concept : les cookbooks exécutables autonomes à sens giratoire inversé.
Le principe est simple, je fournis une liste de recettes sous forme de code commenté qui fonctionne, et qui font une tâche commune.
Je vais commencer par Django, car il en a vraiment besoin. Voici donc, “Django, une app à la fois“, disponible en anglais et en français.
Il n’y a rien à faire sinon télécharger le truc, et le lancer, puis faire mumuse avec. Quand on veut savoir comment un snippet marche, on regarde les sources.
Pour le moment il n’y a que deux apps et un fichier de settings commentés avec amour. Néanmoins le but est d’ajouter de temps en temps une app par ci, par là.
Si la formule a du succès, je le ferai pour d’autres outils : Python pur, fabric, bottle, south, que sais-je.
Tu comptes faire d’autres apps courtes dans ce genre ?
Ou tu attends qu’on t’en propose ?
j’ai peur de ne pas avoir tout compris à ce que tu proposes
Oui je vais rajouter des apps au fur et à mesure.
ok :)
si tu veux, j’ai fait joujou avec une app “rikikite pouce-pouce” que j’ai refaite en flask et bottle (juste pour voir comment on pouvait faire la même chose avec 3 framework differents). Si tu la juges assez pédagogue ( je peux davantage commenter ) c’est ce bidule. Si t’en veux pas / que ca colle pas à l’esprit de ton truc, whatever, let me know je m’offusquerai pas :)
Pour ce projet là non, car le but est d’avoir une feature par app, en commençant par les features de base.
En revanche, ça peut être très interessant d’avoir un article présentant les 3 manières de faire, code à l’appui.
ok !
Ben en voila une chose qu’elle est bonne.
Miam miam les app python pur.
Une excellente idée: c’est par le biais de snippets qu’on apprend le mieux, je trouve
Juste pour préciser parce que je ne l’ai pas vu écrit et que ça peut être déroutant pour les débutants mais c’est du python3 et il faut lancer
python ./manage.py runserver
oupython3 ./manage.py runserver
pour pouvoir accéder àhttp://127.0.0.1:8000/
Dans l’article le lien est mal passé et dans ce commentaire il ne passe pas bien à cause du double – qui se transforme en –
Django, une app à la fois
Les snippets c’est bon, mangez-en.
Une bonne initiative qui fera du bien aux débutants.
Ce n’est pas du python 3, c’est du Python 2. Mais django accepte python 2 et 3 de toute façon en version 1.5.
Lorsque je lance la commande “python manage.py”, j’ai
“Usage: manage.py subcommand [options] [args]”, comme s’il manquait une commande. C’est grave docteur ?
C’est de ma faute, j’ai fais une typo dans la commande.
Ca a été corrigé.
La bonne commande est “python manage.py runserver”
Okay
sinon merci pour ces tutos et ce blog, j’apprends énormément grâce à vous.
Il nous faut vraiment un tampon “de rien”. Max ??????
Hola,
Idem, super initiative, comme d’autres avant celle-ci d’ailleurs.
Merci.
Très bonne initiative ! Merci :)
Génial! Je me met à Django et j’y suis un peu paumé!
Cette app tombe à pic! Merci les gars!
Bégaiement du doigt ? Le lien est erroné :) (outre le fait qu’il est mal formaté dans l’article WordPress)
Sinon :
autonomes a sens -> autonomes à sens
deux apps, et un -> deux apps et un
je le ferais -> je le ferai
Après le coup de bâton, la caresse : je salue l’idée. Les snippets, c’est bon, mangez en :) .
Arf, j’avoue ne pas avoir regardé le code pour dire si c’était du python 2 ou du python 3 mais chez moi j’obtiens avec python 2.7 :
Traceback (most recent call last):
File "manage.py", line 7, in
import project.settings
File ".../project/settings.py", line 47, in
APPS_DIR = os.path.join(ROOT_DIR, 'apps')
File "/usr/lib/python2.7/posixpath.py", line 71, in join
path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 11: ordinal not in range(128)
@Djiko: j’ai réparé plusieurs liens cassés, il en reste ?
@Tontof: bien vu, ma config ne prenait pas en compte les accents dans le chemin du dossier et c’est une bonne chose de le voir maintenant car quasiment aucune ressource sur le net n’explique comment le faire. J’ai modif le code et normalement ça devrait le faire. Tu confirmes ?
@Sam : non, je suis tombé dans une faille spacio-temporelle quand j’ai écris mon commentaire (vive les onglets ouverts trois jours avant d’en lire le contenu :D )
Je confirme :-)
Chouette…
Je suis en train de suivre le tuto du site du zéro (en quasi ligne droite, je le recommande) et la seule chose qui me manquait, c’était le code de Django commenté en français… :-p
Voilà qui est fait…
Très gros bouleau… merci…
J’ai un peu cherché pour découvrir le coup du path.py et avoir ainsi toutes ses applis dans un dossier…
Compte-tenu de l’objectif de l’exercice, il est possible que cela rajoute un niveau de complexité dans la compréhension des chemins pas forcément salutaire…
En, même temps, je suis bien content d’avoir eu l’occasion de comprendre le truc… :-)
Enfin, simple remarque, “Une appli après l’autre” collerai peut-être plus à l’esprit du projet…
Merci encore pour le taff…
Ouai j’ai hésité à le faire mais je me suis dis, tant pis, il va y avoir 40 apps à la fin, j’ai pas envi de tout mettre à la racine.
Merci ! Ces exemples m’ont été bien utiles pour commencer !
Salut,
Super merci ton ton travail, cela aide beaucoup… Mais, car comme tu le sais il y a toujours un mais ;)
Grace à l’app3_basic_routing, je comprend mieux comment cela fonctionne. dans tes exemple, tu utilises des liens du type :
a href="./hello_from_app1/">./hello_from_app1/</>:
et ça je sais faire. là ou je ne sais plus c’est quand je fait :def logon(request):
username = request.POST['user']
password = request.POST['pword']
impossible de faire la redirection, soit il ne fait rien, soit il me fait ça :
NoReverseMatch at /logon/
Reverse for ” not found. ” is not a valid view function or pattern name.
si tu as un idée je suis preneur
le url.py au passage :
from django.urls import path, re_path
from . import views
from accueil.views import index as accueil_index
from django.views.generic.base import RedirectView
urlpatterns = [
path('', views.index, name='index'),
path('logon', views.logon, name='logon'),
path('index',accueil_index, name='index'),
]
merci
christophe
redirect() prend en premier paramètre soit:
– un objet qui a une méthode “get_absolute_url()” qui retourn un url sous forme de string
– une string qui représente une url absolue. Ex: ‘/toto’
– une string qui représente le nom d’une url dans ton url.py. Ex: si tu as mis name=”foo”, tu peux mettre “foo”.
Toi tu passe ici un objet request, ce qui n’a rien à voir avec la choucroute.
Salut Sam,
Merci pour ta réponse, j’avais compris juste après t’avoir envoyer la question… pourtant c’est bon la choucroute…
Merci encore, et continue tu nous donner de bons conseils
Christophe