視圖
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比平?jīng)鼍W(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式平?jīng)鼍W(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋平?jīng)龅貐^(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。url
Django中url匹配是寫在 urls.py 文件中,用正則表達(dá)式對(duì)應(yīng) views.py 中的一個(gè)函數(shù)
配置url和對(duì)應(yīng)視圖函數(shù)之間的映射
url(r'^$', views.index),
url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage),
url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}),
url(r'^web/',include('web.urls')), 根據(jù)app對(duì)路由規(guī)則進(jìn)行一次分類
視圖
一個(gè)視圖函數(shù),簡(jiǎn)稱視圖,是一個(gè)簡(jiǎn)單的Python 函數(shù),它接受Web請(qǐng)求并且返回Web響應(yīng)。
下面是一個(gè)返回當(dāng)前日期和時(shí)間作為HTML文檔的視圖:
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)
快捷函數(shù)
render(request, template_name[, context][, context_instance][, content_type][, status][, current_app][, dirs][, using])
request 必選參數(shù)
用于生成響應(yīng)的請(qǐng)求對(duì)象。
status
響應(yīng)的狀態(tài)碼。默認(rèn)為200。
redirect(to, [permanent=False, ]*args, **kwargs)
裝飾器
require_http_methods(request_method_list)[source]
限制視圖只能服務(wù)規(guī)定的http方法。用法:
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET", "POST"])
def my_view(request):
pass
require_GET()
只允許視圖接受GET方法的裝飾器。
require_POST()
只允許視圖接受POST方法的裝飾器。
require_safe()
只允許視圖接受 GET 和 HEAD 方法的裝飾器。 這些方法通常被認(rèn)為是安全的,因?yàn)榉椒ú辉撚姓?qǐng)求資源以外的目的。
請(qǐng)求和響應(yīng)對(duì)象
Django 使用Request 對(duì)象和Response 對(duì)象在系統(tǒng)間傳遞狀態(tài)。
HttpRequest.method
一個(gè)字符串,表示請(qǐng)求使用的HTTP 方法。必須使用大寫。例如:
if request.method == 'GET':
do_something()
elif request.method == 'POST':
do_something_else()
HttpRequest.path 一個(gè)字符串,表示請(qǐng)求的頁面的完整路徑,不包含域名。
HttpRequest.POST 一個(gè)類似于字典的對(duì)象,如果請(qǐng)求中包含表單數(shù)據(jù),則包含HTTP POST 的所有參數(shù)。
HttpRequest.COOKIES 一個(gè)標(biāo)準(zhǔn)的Python 字典,包含所有的cookie。鍵和值都為字符串。
HttpRequest.FILES 一個(gè)類似于字典的對(duì)象,包含所有的上傳文件。FILES 中的每個(gè)鍵為<input type="file" name="" /> 中的name。
JsonResponse 對(duì)象
典型的用法如下:
from django.http import JsonResponse
response = JsonResponse({'foo': 'bar'})
文件上傳
當(dāng)Django在處理文件上傳的時(shí)候,文件數(shù)據(jù)被保存在request. FILES
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
def handle_uploaded_file(f):
with open('some/file/name.txt', 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站欄目:django-視圖-創(chuàng)新互聯(lián)
當(dāng)前地址:http://jinyejixie.com/article18/piodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、定制開發(fā)、品牌網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)、服務(wù)器托管、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容