Nous avons résumé de la conception du schéma d'URL dans Django à la partie affichée dans le modèle.
urls.py
from django.template import Context, loader
from polls.models import Test
from django.http import HttpResponse
def index(request):
latest_test_list = Test.objects.all().order_by('-pub_date')[:5]
t = loader.get_template('test/index.html')
c = Context({
'latest_test_list': latest_test_list,
})
return HttpResponse(t.render(c))
Créez une URL à l'aide d'expressions régulières dans urls.py.
Comme façon de penser Django teste depuis le premier taple jusqu'à ce que l'URL demandée corresponde à l'expression canonique du tapple.
Si une expression régulière correspondante est trouvée, Django appellera la fonction de rappel spécifiée dans le taple approprié. Passez l'objet HttpRequest comme premier argument à la fonction de rappel. En outre, dans l'expression régulière, "transmettez la valeur capturée en tant qu'argument de mot-clé. Si un objet dictionnaire facultatif (qui est le troisième élément du taple) est spécifié, son contenu est également passé en tant qu'arguments de mot-clé supplémentaires.
Définissez le répertoire qui spécifie le schéma d'URL ci-dessus dans setting.py
setting.py
TEMPLATE_DIRS = (
'/Chemin vers le répertoire où se trouve le modèle/', #Vous devez vous adapter à votre environnement.
)
Le paramétrage de l'URL est complété comme ci-dessus, mais la méthode correspondant à l'URL n'est pas définie. Définissez-le dans view.py.
from django.shortcuts import render_to_response
from polls.models import Test
def index(request):
latest_test_list = Test.objects.all().order_by('-pub_date')[:5]
return render_to_response('test/index.html',
{'latest_test_list': latest_test_list})
Enfin, spécifiez le frontal et le design dans le modèle, Affichez le contexte passé.
templete.html
{% if latest_test_list %}
<ul>
{% for test in latest_test_list %}
<li><a href="/test/{{ test.id }}/">{{ test.text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>There is no test.</p>
{% endif %}
Recommended Posts