您的位置:首页 > 编程语言 > Go语言

Django View基础

2016-03-16 14:49 549 查看
== 编写视图(view)

view 或 view function:一个python函数,处理一个Web request并返回一个Web response.

- 一个简单的view

from django.http import HttpResponse

import datetime

def current_datetime(request):

now = datetime.datetime.now()

html = "<html><body>It is now %s.</body></html>" % now

return HttpResponse(html)

- 返回错误

from django.http import HttpResponse, HttpResponseNotFound

def my_view(request):

if foo:

return HttpResponseNotFound('<h1>Page not found</h1>')

else:

return HttpResponse('<h1>Page was found</h1>')

def my_view(request):

# Return a "created" (201) response code.

return HttpResponse(status=201)

# Http404异常

from django.http import Http404

from django.shortcuts import render_to_response

from polls.models import Poll

def detail(request, poll_id):

try:

p = Poll.objects.get(pk=poll_id)

except Poll.DoesNotExist:

raise Http404("Poll does not exist")

return render_to_response('polls/detail.html', {'poll': p})

- 定制错误views

在URLconf中指定(其他地方无效果)

handler404 = 'mysite.views.my_custom_page_not_found_view'

handler500 = 'mysite.views.my_custom_error_view'

handler403 = 'mysite.views.my_custom_permission_denied_view'

handler400 = 'mysite.views.my_custom_bad_request_view'

== Django快捷函数

render(request, template_name, context=None, context_instance=_context_instance_undefined, content_type=None,

status=None, current_app=_current_app_undefined, dirs=_dirs_undefined, using=None)

render_to_response(template_name, context=None, context_instance=_context_instance_undefined, content_type=None,

status=None, dirs=_dirs_undefined, using=None)

redirect(to, permanent=False, *args, **kwargs)

get_object_or_404(klass, *args, **kwargs)

get_list_or_404(klass, *args, **kwargs)

== view函数修饰符

# 允许的http方法

require_http_methods(request_method_list)

@require_http_methods(["GET", "POST"])

def my_view(request):

require_GET()

require_POST()

require_safe()

# 条件处理

# GZip

# Vary headers
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: