国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

3-django——視圖

dinfer / 2236人閱讀

摘要:概述作用視圖接收請求并返回響應本質視圖就是一個函數,被定義在文件中響應可以是一個頁面,一個重定向,一個錯誤一個數據等等過程視圖函數對象概述服務器接收到協議的請求后,會根據報文創建對象視圖函數的一個形參就是對象屬性方法如果請求是通過類發起的,

概述
作用:視圖接收WEB請求并返回WEB響應

本質: 視圖就是一個python函數,被定義在views.py文件中

響應: 可以是一個HTML頁面,一個重定向,一個404錯誤、一個JSON數據等等

過程:

URLConf

視圖函數

HttpRequest對象
概述: 服務器接收到http協議的請求后,會根據報文創建HttpRequest對象; 視圖函數的一個形參就是HttpRequest對象
屬性

方法

is_ajax(): 如果請求是通過XMLHTTPRequest類發起的,返回True

QueryDict對象

GET屬性

http://127.0.0.1:8000/get1/?a=1&b=2&c=3

def get1(request):
    a = request.GET.get("a")
    b = request.GET.get("b")
    c = request.GET.get("c")
    return HttpResponse(a+"-"+b+"-"+c)

http://127.0.0.1:8000/get2/?a=1&a=2&c=3

def get2(request):
    alist = request.GET.getlist("a")
    c = request.GET.get("c")
    return HttpResponse(alist[0]+"-"+alist[1]+"-"+c)
POST屬性

使用表單提交,需要將settings.py文件中的"django.middleware.csrf.CsrfViewMiddleware",中間件去掉




    
    注冊


    
用戶名:
密碼:
愛好: 權利 金錢 閱讀
def registe(request):
    if request.method == "GET":
        return render(request, "registe.html")
    else:
        username = request.POST.get("username")
        passwd   = request.POST.get("passwd")
        hobbys   = request.POST.getlist("hobby")
        print(username, passwd, hobbys)
        return HttpResponse("注冊成功")
HttpResponse對象
概述: HttpRequest對象由Django自動創建的,但是HttpResponse對象由程序員創建的;存儲服務器響應給客戶端的數據
用法

常見的MIME類型(通用型):

超文本標記語言文本 .html text/html

xml文檔 .xml text/xml

XHTML文檔 .xhtml application/xhtml+xml

普通文本 .txt text/plain

RTF文本 .rtf application/rtf

PDF文檔 .pdf application/pdf

Microsoft Word文件 .word application/msword

PNG圖像 .png image/png

GIF圖形 .gif image/gif

JPEG圖形 .jpeg,.jpg image/jpeg

au聲音文件 .au audio/basic

MIDI音樂文件 mid,.midi audio/midi,audio/x-midi

RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio

MPEG文件 .mpg,.mpeg video/mpeg

AVI文件 .avi video/x-msvideo

GZIP文件 .gz application/x-gzip

TAR文件 .tar application/x-tar

任意的二進制數據 application/octet-stream

屬性
屬性 描述
content 表示返回的內容,字符串類型
charset 表示response采用的編碼字符集,字符串類型
status_code 響應HTTP的狀態碼
content_type 指定輸出的MIME類型
方法

init: 使用頁面實例化HttpResponse對象

write(content):

# 以文件的方式寫入,將 content 寫到報文的主體中,這使得 HttpResponse 的實例類似于文件對象
def index(request):
    response = HttpResponse()
    response.content = "sunck is a good man"
    response.charset = "utf-8"
    response.write("!")
    response.write("very good!")
    return response

flush() : 以文件的方式輸出緩沖區; 在flush之后就不要在寫write了

set_cookie():
原型:set_cookie(self, key, value="", max_age=None, expires=None, path="/", domain=None, secure=False, httponly=False)

作用: 設置cookie,cookie是保存在客戶端的信息,以鍵值對的形式保存

參數:

key : cookie的鍵

value:cookie的值

max_age: 過期時間 單位秒

expires:設置過期時間 datetime.datetime 對象

示例:

def setcookie(request):
    response = HttpResponse("sunck is a handsome man")
    response.set_cookie("sunck", "good")
    return response

request.COOKIES.get("sunck")

delete_cookie(key):刪除cookie

子類HttpResponseRedirect
功能: 重定向,服務器端跳轉

實現

from django.http import HttpResponse, HttpResponseRedirect
def indexTemp(request):
    # 重定向到/index/
    return HttpResponseRedirect("/index/")

from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpResponseRedirect

def indexTemp(request):
    # 重定向到/index/
    # return HttpResponseRedirect("/index/")
    return redirect("/index")
子類JsonResponse

返回JSON數據,一般用于異步請求

優點: 幫助用戶創建JSON編碼響應; 參數是字典對象;JsonResponse的默認Content-Type為application/json

狀態保持 概述

啟用session
# settings.py  默認已經啟用
"django.contrib.sessions",
"django.contrib.sessions.middleware.SessionMiddleware"
使用session

啟用session后,每個HttpRequest對象都將具有一個session屬性,它是一個類似字典的對象

方法 解釋
get(key, default=None) 根據鍵獲取會話的值
clear() 清除所有會話
flush() 刪除當前的會話并刪除會話的cookie
del request.session[鍵] 刪除會話
示例
def home(request):
    userAccount = request.session.get("userAccount", default="未登錄")
    return render(request, "home.html", {"userAccount":userAccount})
def cart(request):
    userAccount = request.session.get("userAccount", default="未登錄")
    return render(request, "cart.html", {"userAccount":userAccount})
def login(request):
    if request.method == "GET":
        fromPath = request.GET.get("from")
        return render(request, "login.html", {"fromPath":fromPath})
    else:
        userAccount = request.POST.get("userAccount")
        passwd      = request.POST.get("passwd")
        # 從哪里來
        fromPath = request.GET.get("from")
        # 驗證
        if userAccount == "sunck" and passwd == "sunck1999":
            #登陸成功
            #狀態保持,將用戶名寫入session
            request.session["userAccount"] = userAccount
            
            fromPath = "/" + fromPath + "/"
            return redirect(fromPath)
        else:
            #登陸失敗
            return redirect("/login/?from=%s"%fromPath)
from django.contrib.auth import logout
def quit(request):
    logout(request)
    return redirect("/home/")
過期時間

存儲session

基于數據庫的會話: 默認的會話存儲方式

SESSION_ENGINE="django.contrib.sessions.backends.db"

基于緩存的會話: 只存在本地內存中,如果丟失則不能找回,比數據庫的方式讀寫更快

SESSION_ENGINE="django.contrib.sessions.backends.cache"

同時基于緩存和數據庫的會話: 有限從本地緩存中獲取,如果沒有則從數據庫中獲取

SESSION_ENGINE="django.contrib.sessions.backends.cached_db"

使用redis緩存session
SESSION_ENGINE="redis_sessions.session"
SESSION_REDIS_HOST="localhost"
SESSION_REDIS_PORT=6379
SESSION_REDIS_DB=0
SESSION_REDIS_PASSWORD="sunck"
SESSION_REDIS_PREFIX="session"

4-django——模板

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41955.html

相關文章

  • 3-Django視圖

    摘要:概述作用視圖接收請求并返回響應方法就是在視圖里使用函數處理請求。 概述 作用:視圖接收WEB請求并返回WEB響應方法:1. FBV(function base views)?就是在視圖里使用函數處理請求。 ? 2. CBV(class base views)?就是在視圖里使用類處理請求。 響應: 可以是一個HTML頁面,一個重定向,一個404錯誤、一個...

    asoren 評論0 收藏0
  • Django 2.0 發布,都有哪些新特性要注意?

    摘要:是開發最常用的框架之一,跟進它的最新變化絕對是必須的。年月日,官方發布了版本,成為多年來的第一次大版本提升,那么對廣大使用者有哪些變化和需要注意的地方呢一兼容性支持和。 Django 是 Python Web 開發最常用的框架之一,跟進它的最新變化絕對是必須的。 2017年12月2日,Django官方發布了2.0版本,成為多年來的第一次大版本提升,那么2.0對廣大Django使用者有哪...

    RancherLabs 評論0 收藏0
  • Python學習之路17-Django入門

    摘要:編程從入門到實踐筆記。執行命令后,項目的根目錄下會多出一個名為的數據庫文件。下面創建一個主題類用戶學習的主題返回模型的字符串表示類是中的一個定義了模型基本功能的類。這種交互式環境稱為,常用語測試項目和排除故障。 《Python編程:從入門到實踐》筆記。從本篇開始將是該書的最后一個項目,將用3篇文章來介紹Django的基礎。完成一個學習筆記的小網站。 1. 前言 在本篇中,我們將: 用...

    shadowbook 評論0 收藏0
  • 2-django——模型

    概述:Django對各種數據庫都提供了很好的支持,Django為這些數據庫提供了統一的調用接口API,程序員可以根據自己的業務需求選擇不同的數據庫 ORM簡介 概述:對象-關系-映射 作用: 根據類生成表結構;將對象、列表的操作轉換成對應的SQL語句;將SQL語句查詢到的結果轉換為對象或者列表 優點:極大的減輕開發人員的工作量,不需要面對因數據庫的變更而導致代碼無效在修改代碼 圖解: showIm...

    idisfkj 評論0 收藏0
  • Django學習——Django的基礎3django的基本操作1)

    摘要:那就是新建一個用戶,賦予該用戶只能操作該數據庫的權限。這是根據安全開發中的最小權限原則規定而來的,能夠有效的防止網站被攻擊后的代價。 基本操作將用一個簡單的實例來穿針引線,將盡量涉及到多的操作方法和軟件設計的原理 設計表的結構 我們想要做一個班級管理的程序,我們先去設計一下數據庫表的結構。首先我們應該有一下幾張表 班級表 學生表 班級表 表名:classes 班級id:id 班級...

    RancherLabs 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<