Table des matières
Ordering notice
Maison développement back-end Tutoriel Python Django 基础教程 - 模板

Django 基础教程 - 模板

Oct 17, 2016 pm 02:16 PM

注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。

在上一章你可能已经发现了这样的问题,就是在视图返回文本的时候,HTML代码被硬编码在了python的代码中。如%s等等。像这样写往往使得程序更加复杂,一旦修改起来又显得十分的麻烦,而且HTML代码程序员不见得会python代码,现在的开发一般都会使得HTML前台页面和Python后台分离,也就是前台只负责显示页面,后台只负责处理数据和其他操作。因此,模板显得尤为重要。

那么,什么是模板呢?

模板是一个文本,用于分离文档的表现形式和内容。 模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签)。 模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档。下面我们从一个简单的例子来学习下什么是模板。(这个例子源自DjangoBook2)

 <head><title>Ordering notice</title></head>
 <body>
 <h1 id="Ordering-nbsp-notice">Ordering notice</h1>
 <p>Dear {{ person_name }},</p>
 <p>Thanks for placing an order from {{ company }}. It&#39;s scheduled to
 ship on {{ ship_date|date:"F j, Y" }}.</p>
 <p>Here are the items you&#39;ve ordered:</p>
 <ul>
 {% for item in item_list %}
     <li>{{ item }}</li>
 {% endfor %}
 </ul>
 {% if ordered_warranty %}
     <p>Your warranty information will be included in the packaging.</p>
 {% else %}
     <p>You didn&#39;t order a warranty, so you&#39;re on your own when
     the products inevitably stop working.</p>
 {% endif %}
 <p>Sincerely,<br />{{ company }}</p>
 </body>
 </html>
Copier après la connexion


如上所示用{{...}}或者{%...%}来替代python代码的方式就是模板,像第一个{{person_name}}其实就是一个变量,而{%for....%}或者{% if ...%}等就是循环。先不去深究上面的代码的意思,我们下面一步一步来学习怎么使用它。

>>> from django import template
>>> t = template.Template(&#39;My name is {{ name }}.&#39;)
>>> c = template.Context({&#39;name&#39;: &#39;Adrian&#39;})
>>> print(t.render(c))
My name is Adrian.
>>> c = template.Context({&#39;name&#39;: &#39;Fred&#39;})
>>> print(t.render(c))
My name is Fred.
Copier après la connexion


当你看到上面的代码时你可能会急不可耐的去尝试,结果在第二行却出现了错误。一般来说唯一可能出现的错误就是:'DJANGO_SETTINGS_MODULE'error,这是因为Django搜索DJANGO_SETTINGS_MODULE环境变量时,它被设置在settings.py中,而直接启动python shell就会导致它不知道用哪个配置文件。例如,假设mysite在你的Python搜索路径中,那么DJANGO_SETTINGS_MODULE应该被设置为:’mysite.settings’。所以为了免去设置环境变量的麻烦,我们应该这样启动python shell。

python manage.py shell

这样可以免去你大费周章地去配置那些你不熟悉的环境变量。

下面我们来分析下那段代码。

>>> from django import template  #从django中导入template对象
>>> t = template.Template(&#39;My name is {{ name }}.&#39;)  #使用template对象的Template()方法
>>> c = template.Context({&#39;name&#39;: &#39;Adrian&#39;})  #使用template对象的Context()函数给赋值,比如name的值就是Adrian,Context()的()里面是一个字典
>>> print(t.render(c))   #渲染模板,也就是讲Context赋值后的name的值Adrian替换上面Template()中的{{name}}并输出
My name is Adrian.
>>> c = template.Context({&#39;name&#39;: &#39;Fred&#39;})
>>> print(t.render(c))
My name is Fred.
Copier après la connexion


从上面的例子可以看出,使用模板的三步。一、调用Template函数;二、调用Context函数;三、调用render函数。就这么简单。


下面我们再通过几个代码来说说Context()函数。

#代码段1:
>>> from django.template import Template,Context
>>> t=Template(&#39;hello,{{name}}&#39;)
>>> for name in (&#39;A&#39;,&#39;B&#39;,&#39;C&#39;):
...     print(t.render(Context({&#39;name&#39;:name})))
...
hello,A
hello,B
hello,C
#代码段2:
>>> from django.template import Template,Context
>>> person={&#39;name&#39;:&#39;Thunder&#39;,&#39;age&#39;:&#39;108&#39;}
>>> t=Template(&#39;{{person.name}} is {{person.age}} years old!&#39;)
>>> c=Context({&#39;person&#39;:person})#后面的这个person是一个字典
>>> t.render(c)
&#39;Thunder is 108 years old!&#39;
#代码段3:
>>> from django.template import Template,Context
>>> t=Template(&#39;Item 2 is {{items.2}}&#39;)#items.2的意思是调用items列表的第3个元素,因为列表的索引是从0开始的
>>> c=Context({&#39;items&#39;:[&#39;Apple&#39;,&#39;Banana&#39;,&#39;Orange&#39;]})
>>> t.render(c)
&#39;Item 2 is Orange&#39;
Copier après la connexion


注意:上面的items.2不能是items.-1或者其他什么负数索引。

好好观察上面三段代码,是不是就举一反三了呢?另外默认情况下,如果一个变量不存在,模板系统会把它展示为空字符串,不做任何事情来表示失败。



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1672
14
Tutoriel PHP
1276
29
Tutoriel C#
1256
24
Python vs C: courbes d'apprentissage et facilité d'utilisation Python vs C: courbes d'apprentissage et facilité d'utilisation Apr 19, 2025 am 12:20 AM

Python est plus facile à apprendre et à utiliser, tandis que C est plus puissant mais complexe. 1. La syntaxe Python est concise et adaptée aux débutants. Le typage dynamique et la gestion automatique de la mémoire le rendent facile à utiliser, mais peuvent entraîner des erreurs d'exécution. 2.C fournit des fonctionnalités de contrôle de bas niveau et avancées, adaptées aux applications haute performance, mais a un seuil d'apprentissage élevé et nécessite une gestion manuelle de la mémoire et de la sécurité.

Apprendre Python: 2 heures d'étude quotidienne est-elle suffisante? Apprendre Python: 2 heures d'étude quotidienne est-elle suffisante? Apr 18, 2025 am 12:22 AM

Est-ce suffisant pour apprendre Python pendant deux heures par jour? Cela dépend de vos objectifs et de vos méthodes d'apprentissage. 1) Élaborer un plan d'apprentissage clair, 2) Sélectionnez les ressources et méthodes d'apprentissage appropriées, 3) la pratique et l'examen et la consolidation de la pratique pratique et de l'examen et de la consolidation, et vous pouvez progressivement maîtriser les connaissances de base et les fonctions avancées de Python au cours de cette période.

Python vs. C: Explorer les performances et l'efficacité Python vs. C: Explorer les performances et l'efficacité Apr 18, 2025 am 12:20 AM

Python est meilleur que C dans l'efficacité du développement, mais C est plus élevé dans les performances d'exécution. 1. La syntaxe concise de Python et les bibliothèques riches améliorent l'efficacité du développement. Les caractéristiques de type compilation et le contrôle du matériel de CC améliorent les performances d'exécution. Lorsque vous faites un choix, vous devez peser la vitesse de développement et l'efficacité de l'exécution en fonction des besoins du projet.

Python vs C: Comprendre les principales différences Python vs C: Comprendre les principales différences Apr 21, 2025 am 12:18 AM

Python et C ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1) Python convient au développement rapide et au traitement des données en raison de sa syntaxe concise et de son typage dynamique. 2) C convient à des performances élevées et à une programmation système en raison de son typage statique et de sa gestion de la mémoire manuelle.

Quelle partie fait partie de la bibliothèque standard Python: listes ou tableaux? Quelle partie fait partie de la bibliothèque standard Python: listes ou tableaux? Apr 27, 2025 am 12:03 AM

PythonlistSaReparmentofthestandardLibrary, tandis que les coloccules de colocède, tandis que les colocculations pour la base de la Parlementaire, des coloments de forage polyvalent, tandis que la fonctionnalité de la fonctionnalité nettement adressée.

Python: automatisation, script et gestion des tâches Python: automatisation, script et gestion des tâches Apr 16, 2025 am 12:14 AM

Python excelle dans l'automatisation, les scripts et la gestion des tâches. 1) Automatisation: La sauvegarde du fichier est réalisée via des bibliothèques standard telles que le système d'exploitation et la fermeture. 2) Écriture de script: utilisez la bibliothèque PSUTIL pour surveiller les ressources système. 3) Gestion des tâches: utilisez la bibliothèque de planification pour planifier les tâches. La facilité d'utilisation de Python et la prise en charge de la bibliothèque riche en font l'outil préféré dans ces domaines.

Python pour l'informatique scientifique: un look détaillé Python pour l'informatique scientifique: un look détaillé Apr 19, 2025 am 12:15 AM

Les applications de Python en informatique scientifique comprennent l'analyse des données, l'apprentissage automatique, la simulation numérique et la visualisation. 1.Numpy fournit des tableaux multidimensionnels et des fonctions mathématiques efficaces. 2. Scipy étend la fonctionnalité Numpy et fournit des outils d'optimisation et d'algèbre linéaire. 3. Pandas est utilisé pour le traitement et l'analyse des données. 4.Matplotlib est utilisé pour générer divers graphiques et résultats visuels.

Python pour le développement Web: applications clés Python pour le développement Web: applications clés Apr 18, 2025 am 12:20 AM

Les applications clés de Python dans le développement Web incluent l'utilisation des cadres Django et Flask, le développement de l'API, l'analyse et la visualisation des données, l'apprentissage automatique et l'IA et l'optimisation des performances. 1. Framework Django et Flask: Django convient au développement rapide d'applications complexes, et Flask convient aux projets petits ou hautement personnalisés. 2. Développement de l'API: Utilisez Flask ou DjangorestFramework pour construire RestulAPI. 3. Analyse et visualisation des données: utilisez Python pour traiter les données et les afficher via l'interface Web. 4. Apprentissage automatique et AI: Python est utilisé pour créer des applications Web intelligentes. 5. Optimisation des performances: optimisée par la programmation, la mise en cache et le code asynchrones

See all articles