关于Django的render和相关

第一次写自己的博客可能不是很系统,学了什么写什么,只是将自己学习的知识记录下来。我会慢慢修改慢慢将语言打磨的更细致,不奢望能帮助别人,首先先把自己整明白就好。排版也不太好,如果有人看见我的博客希望别吐槽我,代码小白参上。
  页面显示出来有两种不同的方法加载,一种是将数据、信息等东西写死在html里,然后外部请求加载网页时直接渲染出来,即render;另一种是在加载网页时向web服务器请求得到数据加载出来,这种需要js帮助实现,常用于websocket、http、https等。

1. 我理解的render

render这个英文的意思是 给予、递交、表达,在编程中我们称之为 渲染 ,意思是大致相同的,其实我不是很理解这有点抽象的意义,但是经过学习,大致学会了使用。
  引用下别人的智慧:

from django.shortcuts import render
help文档中描述如下:
render(request, template_name, context=None, content_type=None, status=None, using=None)
Returns a HttpResponse whose content is filled with the result of calling django.template.loader.render_to_string() with the passed arguments.
  此方法的作用—结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。
  通俗的讲就是把context的内容, 加载进templates中定义的文件, 并通过浏览器渲染呈现.
http://blog.csdn.net/songyu0219/article/details/52900470?_t_t_t=0.9311686654109508 大神的博客地址,里面有详细的参数说明和解释

2. 应用

在django中我们可以将一些需要经常修改的配置放在settings.py文件里,这样不仅修改方便,而且网页加载也会变快。
  这种有两种方法,一种是直接在网页中渲染出来,另一种就是利用ajax来请求,返回数据在做处理。

· 第一种直接在网页中渲染出来

这种方法适用于渲染不需要逻辑处理的数据等,比如文字、css样式等。
第一步需要做的是在settings.py中设置好需要渲染的东西:
比如:

WHOSE = '谁的'

第二步在views.py中进行渲染:

 from conf import settings
 def mainHandle(request):
     return render(request, 'main.html',{'WHOSE':settings.WHOSE},content_type='text/html')
   

然后在html页面中在需要的地方写上占位符:

<a class="logo" href="#">
   {{WHOSE}}工具
</a>

此时运行就会在页面中渲染出WHOSE的值:
文字渲染出来的效果

· 第二种直接在借助ajax渲染出来

这种方法更适用于需要逻辑处理的数据,比如根据判断结果分别渲染不同的值。不过不用逻辑处理的也可以用这种方法,只不过有些大材小用的感觉。
第一步和上一种方法一样。
第二步是在views.py里填写定义的:

def globle_settings(request):
    return {
        'WHOSE':settings.WHOSE,
    }

第三步在urls.py中:

from views import globle_settings
urlpatterns = [
    url(r'^globle_settings/$',globle_settings),
]

第三步在html中写ajax请求:

$.ajax({
    type: "post",//数据发送的方式(post 或者 get)
    url: "globle_settings",//要发送的后台地址
    data: "",
    dataType: "json",//后台处理后返回的数据格式
    success: function (data) {//ajax请求成功后触发的方法
           $(".logo").val(data)
    }
})

此时运行结果和第一次相同。

3. 其他

我项目中用到的只是最简单的用法,其实这个方法最常用的是一个网页的继承。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值