Django模板语法及render,HttpResponse,redirect

文章展示了Django框架中如何使用模板语法进行数据操作,如加法运算、列表和字典遍历。同时,介绍了HttpResponse的使用以及如何通过render函数将数据传递给HTML模板。此外,还讨论了页面重定向的方法。
摘要由CSDN通过智能技术生成

建立path,建立view 

def review(request):
    import time
    '''模板语法'''
    num1=22
    num2=11
    strl='123'
    array=['a','b','c']
    dictl={'h':'head','b':'body','c':'content'}
    return render(request,'grammar.html',{'n1':num1,'n2':num2,'n3':strl,'n4':array,'n5':dictl})

后面的字典可以写成如下格式,提出来写 

info={
        'n1':num1,
        'n2':num2,
        'n3':strl,
        'n4':array,
        'n5':dictl,
    }
    return render(request,'grammar.html',info)

 直接看grammar.html的代码,【拼接html和python】

<body>
<h1>Django模板语法</h1>
<div style="border: 2px solid pink"><!--django只提供了加法,并未提供其他的运算-->
    数字:{{ n1 }}+{{ n2 }}={{ n1|add:n2 }}<br>
    数字:{{ n1 }}-{{ 10 }}={{ n1|add:-10 }}<br>
    数字:{{ n1 }}/{{ n2 }}*1={% widthratio n1 n2 1 %}<br>
    数字:{{ n1 }}*{{ n2 }}={% widthratio n1 1 n2 %}<br>
    字符串:0下标的字符{{ n3.0 }};{{ n3 }}<br>
    列表: 列表0下标{{ n4.0 }}<br>
    字典:字典键为h的值{{ n5.h }}<br>
</div>
<div style="border: 2px solid green">
    <h3>遍历列表</h3>
    {% for i in n4 %}
        {{ i }}
    {% endfor %}
<hr>
    <h3>遍历字典</h3>
    {%  for k,v in n5.items %}
        {{ k }}:{{ v }}<br>
    {% endfor %}
</div>
</body>
</html>

{{ n1|add:-n2 }} 会报错

{% widthratio n1 n2 n3 %} 计算方式是【n1/n2*n3】

模板语法中不支持使用括号,所以访问字符或列表或字典均用【.】 

{{中不支持运算,仅打印变量}} 

<div>
    {% if n1 > 20 %}
        {{ n1 }}
    {% else %}
        {{ n1|add:10 }}
    {% endif %}
</div>

 if也需要endif

浏览器显示

 for遍历整型数据,直接去遍历是不行的

{% for o in ''|center:10 %}
        <span>{{ forloop.counter }}</span >
{% endfor %}

 分段遍历,开始10,结束20,步长1【与for循环一样】

def in2(request):
    start = 10
    end = 20
    return render(request,'in2.html',{"range":range(start,end,1)})
<body>
{% for i in range %}
    <p>{{ i }}</p>
{% endfor %}
</body>
  •  HttPResponse【一般用来测试是否连接】

  1. HttpResponse("内容") :只能有一个参数,并且必须是字符串,当然,你也可以传数值,但最后到达页面也会变成字符串
  2. HttpResponse("内容1","内容2"...........) : 可以有多个参数,不报错,但是只显示第一个参数。
  3. HttpResponse() : 可以没有参数,不会报错
  • render【传递参数到html】

  1. render(request,"模板文件名[.html]",{"time": t})
  2. render(request,"模板文件名",locals())

return response用locals()将函数内部所有的变量名都传给网页, 包括request

  • redirect【跳转页面】

  1. redirect("路径") : 页面跳转,相当于在浏览器里面输入“”路径“”,再回车

注:这个跳转是在本窗口跳转的,不会新打开窗口

现在所在页面是127.0.0.1:8080/app01/tianjia/【拆分路径之后要加app的名称,例如app01】

重定向:redirect("/app01/yhgl/")#自动拼接http://127.0.0.1:8080,不拼接app记得要自己添加

重定向后是127.0.0.1:8080/app01/yhgl/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值