Django之view

# 视图的基础函数——HttpResponse
from django.http import HttpResponse
def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)
# 视图的快捷函数——render
from django.shortcuts import render
def my_view(request):
    ...
    return render(request, 'template.html', {"foo": "bar"},content_type="application/xhtml+xml")
# 这个示例等同于:
from django.http import HttpResponse
from django.template import RequestContext, loader
def my_view(request):
    ...
    t = loader.get_template('template.html')
    c = RequestContext(request, {'foo': 'bar'})
    return HttpResponse(t.render(c),content_type="application/xhtml+xml")
# 视图的快捷函数——render_to_response    
from django.shortcuts import render_to_response
def my_view(request):
    ...
    return render_to_response('myapp/index.html', {"foo": "bar"},content_type="application/xhtml+xml")
# 视图的快捷函数——redirect
你可以用多种方式使用redirect() 函数。
# 通过传递一个对象;将调用get_absolute_url() 方法来获取重定向的URL:
from django.shortcuts import redirect
def my_view(request):
    ...
    object = MyModel.objects.get(...)
    return redirect(object)
# 通过传递一个视图的名称,可以带有位置参数和关键字参数;将使用reverse() 方法反向解析URL:
def my_view(request):
    ...
    return redirect('some-view-name', foo='bar')
# 传递要重定向的一个硬编码的URL:
def my_view(request):
    ...
    return redirect('/some/url/')
# 也可以是一个完整的URL:
def my_view(request):
    ...
    return redirect('http://example.com/')
#默认情况下,redirect() 返回一个临时重定向。以上所有的形式都接收一个permanent 参数;如果设置为True,将返回一个永久的重定向:
def my_view(request):
    ...
    object = MyModel.objects.get(...)
    return redirect(object, permanent=True)
# 视图的快捷函数——get_object_or_404
from django.shortcuts import get_object_or_404
def my_view(request):
    my_object = get_object_or_404(MyModel, pk=1)
# 视图的快捷函数——get_list_or_404
from django.shortcuts import get_list_or_404
def my_view(request):
    my_objects = get_list_or_404(MyModel, published=True)
# 内置错误视图

在根目录的urls.py中增加最下面四行即可
from django.views import defaults
urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^push/',include('push.urls')),
        url(r'^blog/',include('blog.urls')),
        url(r'^accounts/login/$', auth_views.login),
]+ static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)

handler404=defaults.page_not_found
handler500=defaults.server_error
handler403=defaults.permission_denied
handler400=defaults.bad_request
原文地址:https://www.cnblogs.com/wangbin2188/p/12767879.html