博客信息

Python Django 模板层(全局上下文)

发布时间:『 2019-08-21 04:58』  博客类别:Python  阅读(791)

Python中的全局上下文的含义,个人感觉相当于Java中的servletContext

 

相关代码如下

新增一个应用包

python manage.py startapp ctx

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^staticread/', include('staticread.urls')),
    url(r'^principle/', include('principle.urls')),
    url(r'^stu/', include('stu.urls')),
    url(r'^ctx/', include('ctx.urls'))
]
 

urlpatterns = [
    url(r'^getdata/$', views.getdata_view),
]


# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.http import HttpResponse
from django.shortcuts import render
from ctx.my_context_xxx import get_menus

# Create your views here.
def getdata_view(request):
    # return render(request,'head.html')
    from django.template import Template, RequestContext
    t = Template('hello:{{menus}}')

    render_string = t.render(RequestContext(request, dict_=None, processors=(get_menus,)))

    return HttpResponse(render_string)

注意:这里渲染模板页面的时候并没有传递参数值到前台;

 

应用包下创建my_context_xxx.py文件

# coding=utf-8

# 模拟后台数据查询,网站导航栏一般每个页面都有使用,应该设置为全局上下文
def get_menus(request):
    menus = [{'id': '1', 'name': '新闻'}, {'id': '2', 'name': 'hao123'}, {'id': '3', 'name': '地图'}, {'id': '4', 'name': '视频'},
             {'id': '5', 'name': '贴吧'},{'id': '6', 'name': '晓码阁'}]
    return {'menus': menus}

 

settings中配置当前函数路径

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'ctx.my_context_xxx.get_menus'
            ],
        },
    },
]

 

前端代码如下

小李飞刀_Python


测试结果如下

小李飞刀_Python


over......


关键字:     Python       Django  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有