日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django视图简介

發布時間:2023/12/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django视图简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,視圖函數介紹

  一個視圖函數,簡稱視圖,是一個簡單的Python 函數,它接受Web請求并且返回Web響應。響應可以是一張網頁的HTML內容,一個重定向,一個404錯誤,一個XML文檔,或者一張圖片. . . 是任何東西都可以。無論視圖本身包含什么邏輯,都要返回響應。代碼寫在哪里也無所謂,只要它在你的Python目錄下面。除此之外沒有更多的要求了——可以說“沒有什么神奇的地方”。為了將代碼放在某處,約定是將視圖放置在項目或應用程序目錄中的名為views.py的文件中。

二,三種響應形式

  1:HttpResponse()

  2:render()

render(request, template_name[, context])

  結合一個給定的模板和一個給定的上下文字典,并返回一個渲染后的Httpresponse對象

  參數:

    request:用于生成響應的請求對象

    template_name:要使用的模板完整名稱,可選得到參數

    context:添加到模板上下文的一個字典。如果字典中的某一個值是可調用的,視圖將在渲染模板之前調用它。

# render內部原理 from django.template import Template,Context def test(request):tmp = Template("<h1>{{ user }}</h1>")con = Context({'user':'jason'})res = tmp.render(con)print(res)return HttpResponse(res)

  3:redirect(傳遞要重定向的一個URL)

三,JsonResponse

  向前端返回一個json格式字符串的兩種方式

  方式一:

import json data={'name':'lqz','age':18} data1=['lqz','egon'] return HttpResponse(json.dumps(data1))

  方式二:

from django.http import JsonResponse data = {'name': 'lqz', 'age': 18} data1 = ['lqz', 'egon'] return JsonResponse(data) return JsonResponse(data1,safe=False)

四,CBV和FBV

  class base view 和 Function base view

from django.views import View class AddPublish(View):def dispatch(self, request, *args, **kwargs):print(request)print(args)print(kwargs)# 可以寫類似裝飾器的東西,在前后加代碼obj=super().dispatch(request, *args, **kwargs)return objdef get(self,request):return render(request,'index.html')def post(self,request):requestreturn HttpResponse('post')

?

五,簡單文件上傳

  form表單上傳文件的注意事項,encytpe編碼指定為formdata

def uploadfile(request):if request.method == 'POST':# print(request.FILES)# print(request.FILES.get('myfile'))file_obj = request.FILES.get('myfile')with open(file_obj.name,'wb') as f:for line in file_obj.chunks():# 或者直接對文件對象for循環for line in file_obj f.write(line)return HttpResponse("OK!")return render(request,'index.html')

?

    

    

轉載于:https://www.cnblogs.com/ay742936292/p/10999645.html

總結

以上是生活随笔為你收集整理的Django视图简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。