Django web框架-----Django template

作者: 轻松学Python111 | 来源:发表于2019-04-23 16:46 被阅读5次

    说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用

    一般的变量之类的用 {{ }}(变量),功能类的比如循环、条件判断是用 {% %}(标签)
    复制代码
    实例一:显示一个基本的字符串到网页上

    quicktool/view.py文件修改视图函数index(),渲染一个home.html模板,在视图中传递一个字符串名称是 string 到模板 home.html

    def index(request):
        string = u'这是一个由Django2.1.7版本写出的视图内容!'
        return render(request, 'home.html',{'string':string})
    

    quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html

    #小编整理一套Python资料和PDF,有需要Python学习资料可以加学习群:973783996,反正闲着也是闲着呢,不如学点东西啦~~
    <!DOCTYPE html>
    <html>
    <head>
        <title>学习Django</title>
    </head>
    <body>
    
    {{ string }}
    
    </body>
    </html>
    

    实例二:用for循环显示一个基本的List内容

    quicktool/view.py文件修改视图函数index(),渲染一个home.html模板,在视图中传递一个List到模板home.html

    def index(request):
        TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
        return render(request, 'home.html',{'TutorialList':TutorialList})
    

    quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html

    <!DOCTYPE html>
    <html>
    <head>
        <title>学习Django</title>
    </head>
    <body>
    
    语言类型列表:
    {%  for i in TutorialList %}
    {{ i }}
    {% endfor %}
    </body>
    </html>
    

    实例三:显示字典中的内容

    quicktool/view.py文件:

       info_dict = {'site': u'本地环境', 'content': u'Django技术'}
       return render(request, 'home.html', {'info_dict': info_dict})
    

    quicktool/templates/home.html文件:

    开发环境:
    {{ info_dict.site }}
    学习内容:
    {{ info_dict.content }}
    

    quicktool/templates/home.html文件(遍历字典):

    {% for key, value in info_dict.items %}
        {{ key }}: {{ value }}
    {% endfor %}
    

    实例四:进行条件判断和for 循环

    quicktool/view.py文件:

    def home(request):
        List = map(str, range(100))# 一个长度为100的 List
        return render(request, 'home.html', {'List': List})
    

    quicktool/templates/home.html文件:

    {% for item in List %}
        {{ item }}, 
    {% endfor %}
    

    打印到页面的最后一个数字有逗号,使用forloop.last判断是否为最后一项,不是最后一项就加逗号,是最后一项就不加

    {% for item in List %}
        {{ item }}{% if not forloop.last %},{% endif %} 
    {% endfor %}
    

    forloop的一些变量

    image

    当列表中可能为空值时用for...empty...

    <ul>
    {% for athlete in athlete_list %}
        <li>{{ athlete.name }}</li>
    {% empty %}
        <li>抱歉,列表为空</li>
    {% endfor %}
    </ul>
    

    实例五:逻辑操作

    ① ==, !=, >=, <=, >, < (注意:比较符号前后必须有至少一个空格!)

    {% if var >= 90 %}
    成绩优秀
    {% elif var >= 80 %}
    成绩良好
    {% elif var >= 70 %}
    成绩一般
    {% elif var >= 60 %}
    需要努力
    {% else %}
    不及格
    {% endif %}
    

    ②and, or, not, in, not in

    # 判断 num 是不是在 0 到 100 之间:
    {% if num <= 100 and num >= 0 %}
    num在0到100之间
    {% else %}
    数值不在范围之内!
    {% endif %}
    

    实例六:获取当前用户、当前网址、当前GET参数

    ①获取当前用户

    {% if request.user.is_authenticated %}
        {{ request.user.username }},您好!
    {% else %}
        请登陆,这里放登陆链接
    {% endif %}
    

    ②获取当前网址

    {{ request.path }}
    

    ③获取当前GET参数

    {{ request.GET.urlencode }}
    

    合并到一起用的例子

    <a href="{{ request.path }}?{{ request.GET.urlencode }}&delete=1">当前网址加参数 delete</a>
    

    网页上的这个a标签href=“/?&delete=1”,每点击一次标签a网页的地址新增参数?delete=1&delete=1...

    相关文章

      网友评论

        本文标题:Django web框架-----Django template

        本文链接:https://www.haomeiwen.com/subject/oyfbgqtx.html