直接在Django模板中使用GET和POST变量

Kel*_*tek 7 django-templates

我希望能够在页面模板中访问某人放置在GET变量中的一些信息(当然是HTML转义.)我将如何进行此操作?我知道你可以通过视图获取这些信息,但在这种情况下,我宁愿处理HTML方面.

Ere*_* T. 12

您可以将该信息从视图传递到模板,就像传递另一个变量一样.在渲染模板时,只需添加变量并传递request.GETQueryDict.您将能够访问模板中的所有GET参数.

编辑

direct_to_template自动包含,RequestContext(request)以便您可以在设置中使用所有上下文实例.请'django.core.context_processors.request'在你TEMPLATE_CONTEXT_PROCESSORS的settings.py中添加.之后,您将能够{{ request }}在模板中使用访问Django的HttpRequest .示例设置,网址和模板如下:

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (                                         
    'django.core.context_processors.request',

     # these are the default values from django. I am not sure whether they
     # are overritten when setting this variable, so I am including them             "django.contrib.auth.context_processors.auth",                  
    "django.core.context_processors.debug",                         
    "django.core.context_processors.i18n",                          
    "django.core.context_processors.media",                         
    "django.core.context_processors.static",                        
    "django.core.context_processors.tz",                            
    "django.contrib.messages.context_processors.messages"           
    )      
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = patterns('django.views.generic.simple',                      

    url(r'^about/$', 'direct_to_template', {'template':                    
        'about.html'}),
)                 
Run Code Online (Sandbox Code Playgroud)

about.html

Your request is: <br /><br />                                                                                                                                                                                           

{{ request.GET }}
Run Code Online (Sandbox Code Playgroud)

另请参阅有关该主题的文档:

https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext

https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS