python之路(18)django框架入门

Posted shuzhixia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之路(18)django框架入门相关的知识,希望对你有一定的参考价值。

前言

  Django框架下的views,templates


 views视图函数的属性方法

http下有两个核心类:HttpResquest类和HttpResponse类

requesr
    request.path : 当前url访问的路径
    request.get_full_path() : url带参数的全路径
    request.method : 返回请求的方式,即GET或POST
    request.POST.get("") / GET.get("") : 得到value

redirect
    redirect(".html") : 跳转html界面,需要导入redirect

render
    render(request,".html",key:value) : 渲染templates
    render(request, ".html", locals()) : 将函数中的所有变量传给模板
    render_to_response(".html",key:value) : 同render(),不需要request参数,要导入render_to_response

 


templates模板语法

模板的组成:html代码+逻辑控制语句

变量var_name
    var_name : 用两个大括号来引用变量
    var_name.1 : 用变量.下标的形式显示列表
    var_name.key : 用变量.key的形式显示字典,同样可以显示类属性

过滤器obj|filter:param
    var_name|first : 取字符串的第一个
    var_name|length : 取字符串的长度
    var_name|slice:-1 : 切片
    var_name|urlencode : 进行url编码
    var_name|add:50 : 给变量加上相应的值
    var_name|addslashes  : 给变量引号前加入相应的值
    var_name|capfirst  : 首字母大写
    var_name|cut:" "  : 移除指定的字符
    var_name|date:"Y-m-d"  : 自定制时间格式(Y年,m月,d天)
    var_name|default:" "  : 如果变量没空,返回默认值
     name|default_if_none:" "  : 如果变量为none,返回默认值
    var_name|safe : 如果传递为html语言,并需要别渲染,就要加上safe

标签(tag)% tags % % endtags %
    % url ‘‘ % : 引用路由配置的地址
    % autoescape off  %% endautoescape % : 关闭安全机制,直接渲染html语句,同var_name|safe
    % if % % elif % % else % % endif %: 判断
    %for value in var_name % % empty %% endfor % : 遍历,value为值
            forloop.counter显示索引,默认1开始,
            forloop.counter0默认0开始
            forloop.revcounter倒数
            forloop.frist当第一次遍历为true
            % empty % : 如果为空则进入
     % csrf_token % : post数据提交安全机制,添加钥匙
    % with simpename = longname% % endwith %: 用简单的名字代替复杂的名字
    % verbatim % % endverbatim %: 禁止render
    % load % : 加载标签库

自定制filter和simple_tag

  a、在app中创建templatetags模块

  b、创建任意.py文件,如:my_tags.py

技术图片
from django import template
from django.utils.safestring import mark_safe

register = template.Library()  #register的名字是固定的

@register.filter #装饰器
def fliter_multi(x,y):
    return y

@register.simple_tag
def simple_tag_multi(x,y):
    return x*y
myTag.py

    c、在使用自定制simple_tag和filter的gtml文件中导入my_tags.py : % load my_tags.py% 顶行写

    d、使用filter和simple_tag

技术图片
% load myTag %
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>

# 传参数只能传一个#
 var_name|fliter_multi:l 

# 不能用在控制语句之中#
% simple_tag_multi 3 5 %

</body>
</html>
index.html

  e、在settings中INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag

继承标签extend和添加标签include

技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <div>父界面</div>


    <div>
        % block content %

            # 这里是子界面 #
        % endblock %

    </div>
</body>
</html>
father.html
技术图片
% extends "father.html" %
# 继承父界面的所有内容 #


% block content %
     # 子界面内容 #
% endblock %
son.html

 

以上是关于python之路(18)django框架入门的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之路

Python学习之路

1Python全栈之路系列之Django初体验

python之路_flask框架_flask框架基础

Python之路Day18-正则及Django

Python之路,第十八篇:Python入门与基础18