# Django Step by Step (三)

## 1 引言

本教程只想从浅到深地将大家带入到 Django 的世界,因此都是以简单的例子出发,而且这些例子都是为了说明问题,本身并没有什么实际的意义。因此许多高级话题都无法涉及,需要大家自行看文档,做试验。

从上一例我们看到,表格的生成是直接在 index() 函数中返回的 HTML 代码,这种混合方式对于大型开发非常不好,下面我们就学习模板的使用。 Django 自带有模板系统,但你可以不使用它,只要在 return 前使用自已喜欢的模板系统进行处理,然后返回即可。但 Django 自带的模板系统有很多特点,我不做过多的说明。我只是想使用它。

现在我的问题就是:

>我有一个通讯录数据,我想使用一个表格来显示。

为了方便,我们不需要使用数据库,因此我把它存在 view 文件中。

## 2 创建 list.py

```python

from django.shortcuts import render_to_response

address = [

{'name':'张三', 'address':'地址一'},

{'name':'李四', 'address':'地址二'}

]

def index(request):

return render_to_response('list.html', {'address': address})

```

这里使用了一个新方法是 render_to_response ,它可以直接调用模板并返回生成好的文本,直接返回它即可。它接收两个参数,第一个是模板的名字。

第二个参数是一个字典,这里只有一个 Key ,名字是 address ,它的值是一个字典的列表。只要注意模板所接收的就是这样的字典和包含字典的列表就行了。

## 3 在 newtest 中创建 templates 目录

用来存放模板文件

## 4 修改 settings.py

修改`INSTALLED_APPS`的内容,增加`'newtest',`,最后的设置为:

```

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'newtest',

]

```

Django会自动搜索newtest/templates目录下的模板文件。

## 5 创建 templates/list.html

```

通讯录

姓名 地址

{% for user in address %}

{{ user.name }}{{ user.address }}

{% endfor %}

```

很简单,就是生成了一个两列的表格。在 Django 模板中 `{{}}` 表示引用一个变量, `{%%}` 表示代码调用。在变量引用中, Django 还支持对变量属性的访问,同时它还有一定的策略,详细的建议查看 The Django template language 文档。这里我也使用了汉字,因此它也需要使用 utf-8 编码。

这里使用 for .. in 的模板 Tag 处理。因此 address 需要是一个集合。在我们的 View 代码中, address 为一个 list 值。每个 list 又是一个字典。因此 `{{ user.name }}` 和 `{{ user.address }}` 就是将这个字典中的元素取出来。

## 6 修改 urls.py

```python

from django.conf.urls import url

from django.contrib import admin

from . import helloworld, add, list

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^$', helloworld.index),

url(r'^add/$', add.index),

url(r'^list/$', list.index),

]

```

增加了 list 的 url 映射。

## 7 启动 server

效果如这样:

![](https://img.kancloud.cn/2c/20/2c20b2f45a236d54facc718ae321480d_112x137.png)

python入门教程第三讲_第三讲 使用Template相关推荐

  1. python入门教程傻瓜版_毫无基础的人如何入门 Python ?Python入门教程拿走不谢啦!...

    随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 如果你是零基 ...

  2. python入门教程慕课网_秒懂系列 | 史上最简单的Python Django入门教程

    摘要:Django的学习教程也是分门别类,形式不一.或是较为体系的官方文档,或者风格自由的博客文档,或者偏向实例的解析文档.即使官方文档,章节较多,文字阐述累赘,有时候我们只是关注某个功能用法而已,而 ...

  3. 用python做自我介绍_用python做个自我介绍(python入门教程)_逻辑教育

    原标题:用python做个自我介绍(python入门教程)_逻辑教育 本文涉及的python基础语法为:数据类型等 数字类型 1. 字符串的拼接 我们在上一章中已经简单介绍了一下字符串的创建方式,这里 ...

  4. python十分钟教程_简洁的十分钟Python入门教程

    [简介] Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. [特点] 1 Python使用C语 ...

  5. python打印小猪佩琪_极度舒适的 Python 入门教程,小猪佩奇也能学会~

    编程几乎已经成为现代人的一门必修课,特别是 Python ,不仅长期霸占编程趋势榜.薪资榜第一,还屡屡进入小学教材,甚至成为浙江省信息技术高考项目-- 今天,小编带来了一门极度舒适的 Python 入 ...

  6. 永恒python怎么用_毫无基础的人如何入门 Python ?Python入门教程拿走不谢啦!

    随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 如果你是零基 ...

  7. python五角星教程_绘制五角星_清华尹成python入门教程_少儿编程视频-51CTO学院

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  8. python代码少儿编程转换_数据类型转换_清华尹成python入门教程_少儿编程视频-51CTO学院...

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  9. 数学表达式转换成python_简单数学表达式_清华尹成python入门教程_少儿编程视频-51CTO学院...

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  10. python儿童编程教程视频_简单回顾_清华尹成python入门教程_少儿编程视频-51CTO学院...

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

最新文章

  1. winpython是个坑_Win10 Python MySQLdb安装爬的坑
  2. 我是如何一步步让公司的MySQL支撑亿级流量的?
  3. 树转化为二叉树_森林转化为二叉树(详解版)
  4. Codeforces 1326F Wise Men (容斥原理、状压 DP、划分数)
  5. C++对自定义结构体变量排序
  6. 基于'sessionStorage'与'userData'的类session存储
  7. 有趣分享:国内产业图谱
  8. 【ArcGIS风暴】什么是点云?什么是Las数据集?一篇文章告诉你点云数据的奥秘
  9. 3d照片环效果(修改版--添加了x轴y轴双向转动和修复模糊度的bug)
  10. Python matplot画散列图
  11. Codeforces 837D 动态规划
  12. CAD .Net 开发-快速入门
  13. 骚操作 Python爬你要的网站数据
  14. 那些C++牛人的博客
  15. ContentNegotiation内容协商机制(一)---Spring MVC内置支持的4种内容协商方式【享学Spring MVC】
  16. 2021莆田六中一高考成绩查询,莆田六中2018年高一新生录取名单完整版
  17. ABAP 去重 delete adjacent duplicates
  18. VC++公安指纹识别系统
  19. JVM Advent Calendar:JCP.NEXT,简化了JCP程序
  20. android 8.0+后台Service限制

热门文章

  1. 2021-07-05 倒置链表(Cpp/C)
  2. 我们为什么这样选择损失函数
  3. Java入门系列-20-异常
  4. 黑客演化史:从20世纪60年代至今
  5. HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP错误解决方法
  6. 用自然语言教育人工智能:百度新算法发展出zero-shot学习能力
  7. 埃博拉病毒和微生物现代战争
  8. 安卓 adb 的原理浅析
  9. 东方智慧和西方智慧的比较
  10. hc06发送at无回应_(完结)(温言穆霆琛)全章节~~全文阅读无弹窗广告