Django模板语法及render,HttpResponse,redirect

建立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】


Django模板语法

数字:{{ n1 }}+{{ n2 }}={{ n1|add:n2 }}
数字:{{ n1 }}-{{ 10 }}={{ n1|add:-10 }}
数字:{{ n1 }}/{{ n2 }}*1={% widthratio n1 n2 1 %}
数字:{{ n1 }}*{{ n2 }}={% widthratio n1 1 n2 %}
字符串:0下标的字符{{ n3.0 }};{{ n3 }}
列表: 列表0下标{{ n4.0 }}
字典:字典键为h的值{{ n5.h }}

遍历列表

{% for i in n4 %} {{ i }} {% endfor %}

遍历字典

{% for k,v in n5.items %} {{ k }}:{{ v }}
{% endfor %}

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

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

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

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

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

 if也需要endif

浏览器显示

Django模板语法及render,HttpResponse,redirect_第1张图片

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

{% for o in ''|center:10 %}
        {{ forloop.counter }}
{% endfor %}

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

def in2(request):
    start = 10
    end = 20
    return render(request,'in2.html',{"range":range(start,end,1)})

{% for i in range %}
    

{{ i }}

{% endfor %}
  •  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/

你可能感兴趣的:(django,python,后端)