前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django学习模板(7)

Django学习模板(7)

作者头像
萌海无涯
发布2019-09-03 18:31:01
4140
发布2019-09-03 18:31:01
举报
文章被收录于专栏:萌海无涯萌海无涯

前面学了视图,我们可以在访问 localhost:8000/polls/ 看到我们返回的内容。

但是只返回一句话有什么用处?

今天我们来说下用模板来帮助我们返回更多的东西!

首先我们在 Django 项目 新建一个html 文件路径:

polls/templates/polls/datail.html

新建文件后里面写入:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ title }}</title>
</head>
<body>
    {% for i in list %}
    <h1>{{h1}}</h1>
    {% endfor %}
</body>
</html>

然后我们在视图文件 新建一个函数:

代码语言:javascript
复制

def detail(request):
    title = "网页标题"
    cont = list(range(1,11)) # 循环次数
    h1 = "循环显示的内容"
    return render(request, 'polls/detail.html', {'title': title, 'list':cont, 'h1': h1})

在应用目录里面的 urls.py 文件加一条路由

代码语言:javascript
复制
path('detail', views.detail, name='detail')

然后运行项目

代码语言:javascript
复制
python manage.py runserver
# 访问 
# localhost:8000/polls/detail 

!怎么报错了!

代码语言:javascript
复制
Exception Type:  TemplateDoesNotExist
Exception Value:  
polls/detail.html

没有找到文件??

对了对了。

我们在

mysite/settings.py 文件里面找到

INSTALLED_APPS = []

在列表尾部插入 'polls',

然后就可以显示文件了!!

一个一个说明:

先说 建立视图:

一个函数对应一个视图,主要我们原来用的是 httpResponse 来返回,现在使用 render 来返回区别是什么呢?

HttpResponse:它是作用是内部传入一个字符串参数,然后发给浏览器。

render:render方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典参数。

HTML模板文件:

Django 会给模板文件里面对应的关键字,在我们提取的时候进行替换。

具体的使用后面单独文章列出。

为什么出现错误?

第一次运行没有找到模板文件,因为我们提交的路径是应用的路径,而我们的应用并没有在项目的设置文件中添加进去,所以就是说我们只是在用url导入的时候当做模块导入,Django框架创建应用的时候不会自动导入进去。后面我们用别人的应用的时候也是需要手动导入的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌海无涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HttpResponse:它是作用是内部传入一个字符串参数,然后发给浏览器。
  • render:render方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典参数。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档