python templates_Python+Django— 入门通关(四)| Templates:模板

本节代码:

更多Django资源:

本节我们将会和大家讲如何将你想要传达给用户的信息通过Django呈现在界面上,此时,我们需要用到模板。什么是模板?你可以理解为前端固定的形式,形式是可以根据不同需求指定的,但是内容可以变化。就比如你进入淘宝页面,淘宝页面上边固定搜索和旁边是导航页面,中间是商品陈列区位置,但是你每次进入时,陈列的商品都会不一样。所以,模板就是表现的框架,而模板内的数据可以根据需求任意改动。

模板就是前端框架

文章标题:{{ article_obj.title }}

文章内容:{{ article_obj.content }}

以上代码就是Django模板的内容,我们可以看到除了{{ }}内容,其余的和HTML无本质区别。

那么,{{}} 实则就是模板中关键的信息。如何将我们希望用户看到的内容传到模板中?

上述{{ article_obj.title }}传递的是文章标题和{{ article_obj.content }}传递的是文章内容。

还记得我们之前学过views.py文件时响应函数和返回响应界面的地方吗?回顾一下

中views.py的内容。

# views.py

#from django.shortcuts import render

from django.http import HttpResponse

from . import models

# Create your views here.

def index(request):

article=models.Article.objects.get(pk=1) # 获取主键为1的文章实例

title=article.title #获取上述文章的标题

content=article.content # 获取上述文章的内容

return HttpResponse("

文章标题:%s


文章内容:%s" % (title,content))

以上是将文章的标题传给title,内容传递给content,最后通过Http响应返回到前端。

此处,我们只需要将Http响应改写为render函数,将需要传递的内容指向特定html路径即可

# views.py

from django.shortcuts import render_to_response

#from django.http import Http404

from . import models

# Create your views here.

# Create article with title and content here

def article_detail(request,article_id):

try:

article=models.Article.objects.get(pk=article_id) #获取pk=1,2,3的文章

# 需要将获取的对象存成字典的形式,即context

context={}

context['article_obj']=article

# html文件识别字典对象,将数据展示到前端页面

return render_to_response("articleDetail.html" , context)

注意:html接收响应对象是字典形式,因此context必须写成字典。

2. 同时在该应用下创建templates文件夹,在templates/下创建html文件,命名为:articleDetail.html. 即上述render_to_response 的第一个参数。

3. 打开templates/articleDetialail.html 文件,编辑如下:

文章标题:{{ article_obj.title }}

文章内容:{{ article_obj.content }}

其中,article_obj为context的key,模板文件接收参数的方式即{{ key.*** }}

4. 修改url.py文件

from django.contrib import admin

from django.urls import path

from myfrtsite import views

urlpatterns = [

path('admin/', admin.site.urls),

path('myfrtsite/article_detail/', views.article_detail,name="article_detail"),

]

我们可以看到,文章内容详情的路径为myfrtsite/article_detail/,后面是是具体哪篇文章的参数,和views.py中参数名称一致。因此,在myfrtsite/article_detail/1可获取数据库中第一篇文章内容,myfrtsite/article_detail/2可获取数据库中第二篇文章内容...

5.最后,我们打开服务器

python manage.py runserver

再次,更改上面127.0.0.1:8000/myfrtsite/article_detail/ 后面的数字试试看,你会发现当数据库没有文章后,会报错(处理错误的方法在代码中写明,这里不再赘述)。

修改后,如果输入的文章id超过范围,会报404错误

6. 如何在后台管理器中增加 文章?

打开admin界面-MYFSTSITE-增加

保存后,你的数据模型中就会增加一篇文章。

后续,我们会对这个界面进行改造,今天就讲到这里哈~下节课将会带大家将这个代码发布到公网。是不是有点小激动~ 让我们创建第一个属于自己的网站啦~

在此,再次感谢杨老师的视频教程,我本人就是按照这个视频一点一点积累的。上述的代码也是按照教程步骤来的,如果有童鞋自己不愿意写代码,可以参照我写的代码。最后,建议大家还是要看下杨老师的教程 。哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili​space.bilibili.com

您的 支持是我努力提供更多更优质内容的动力,感谢点赞~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值