Django視圖之視圖函數

下面來講說常見的視圖函數:django

HttpResponse()函數

Http404()this

HttpResponseNotFound()url

上面三個函數功能比較簡單,用得少,就很少說了!spa

 

render()code

render(request, template_name, context=None, content_type=None, status=None, using=None)[source]
將模板和字典聯繫起來,最終返回一個HttpResponse對象。
必須參數
request
用來生成response的request對象。
template_name
模板名稱。
可選參數:
context
傳遞值給模板的字典。
content_type
MIME標籤,默認使用settings中的DEFAULT_CONTENT_TYPE
status
狀態碼,默認200.
using
模板引擎的名稱。
render_to_response()
render_to_response(template_name, context=None, content_type=None, status=None, using=None)[source]
將來該函數可能被放棄,不作多介紹!
redict()
redirect(to, permanent=False, *args, **kwargs)[source]
返回一個HttpResponseRedirect對象。
參數to能夠能的值:
默認使用臨時重定向,permanent=True爲永久重定向。
# 模型,默認該模型的 get_absolute_url()函數會被調用
from django.shortcuts import redirect

def my_view(request):
    ...
    object = MyModel.objects.get(...)
    return redirect(object)

# reverse()方法
def my_view(request):
    ...
    return redirect('some-view-name', foo='bar')

# URL
def my_view(request):
    ...
    return redirect('/some/url/')
def my_view(request):
    ...
    return redirect('https://example.com/')

 

get_object_or_404()對象

get_object_or_404(klass, *args, **kwargs)[source]
對模型類或者模型manager調用get(),可是返回Http404()而不是模型不存在。
必需參數:
klass
模型,模型的manager或者QuerySet實例。
*args
查詢參數,用來傳遞給get() and filter()
def my_view(request):
    my_object = get_object_or_404(MyModel, pk=1)
相關文章
相關標籤/搜索