日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django知识总结(一)

發(fā)布時間:2023/12/2 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django知识总结(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有關(guān)http協(xié)議

全稱

超文本傳輸協(xié)議(HyperText Transfer Protocol)

?

協(xié)議

雙方遵循的規(guī)范

http協(xié)議是屬于應(yīng)用層的協(xié)議(還有ftp, smtp), 瀏覽器請求消息和服務(wù)器響應(yīng)消息的一系列規(guī)則

?

http協(xié)議的特性

http是無狀態(tài)、無連接的協(xié)議(stateless, connectionless protocol)

http協(xié)議不具備保存之前發(fā)送過的請求或響應(yīng)的功能--

服務(wù)器中沒有保存客戶端的狀態(tài),客戶端必須每次帶上自己的狀態(tài)去請求服務(wù)器

?

為什么http是無狀態(tài)協(xié)議的?

① TCP協(xié)議是基于連接和三次握手的,雖然具有可靠性,

但具有一定的缺陷。但試想一下,普通的C/S架構(gòu)軟件,

頂多上千個Client同時連接,而對于B/S架構(gòu)的網(wǎng)站,

十萬人同時在線也是很平常的事兒。

如果十萬個客戶端和服務(wù)器一直保持連接狀態(tài),那服務(wù)器如何滿足承載呢?

?

基于上述問題,http協(xié)議應(yīng)運而生。

基于TCP的可靠性連接,瀏覽器發(fā)出請求之后,服務(wù)器端立即關(guān)閉連接、釋放資源。

這樣既保證了資源可用,也吸取了TCP的可靠性的優(yōu)點。

因此,通常說http協(xié)議是"無狀態(tài)"的。

?

保持http連接狀態(tài)的技術(shù)--session tracking(會話跟蹤)

常用的會話跟蹤技術(shù)是cookiesession

cookie是在客戶端記錄用戶信息的鍵值對

session是在服務(wù)器端記錄用戶信息的鍵值對

現(xiàn)在一些輕量級的web庫,用的是加密的cookie,不需要session

pythontornado框架就沒有session,只有加密的cookie

?

http消息

1 ● 瀏覽器發(fā)出的請求消息(request)

請求首行 status-line

請求頭 request headers

\r\n\r\n空行

請求體 request body(例如, 用戶名, 密碼)

?

也就是:

[請求方法] [URL] [http協(xié)議版本]

[頭字段1]: 1

[頭字段2]: 2

?

[請求體]

※ GET有沒有請求體?

一般來說, GET請求沒有請求體, 但也可以有, 詳見:

https://unmi.cc/why-http-get-cannot-sent-data-with-reuqest-body/

?

請求頭的頭字段包括Content-Type, User-Agent, Cookie, Accept-Language, 詳見:

https://www.cnblogs.com/jiangxiaobo/p/5499488.html

?

※ GET請求和POST請求的區(qū)別

1,

① GET請求一般通過 URL Query Parameter 的形式來發(fā)送數(shù)據(jù), 例如:

https://www.douban.com/group/explore?tag=%E6%97%85%E8%A1%8C ()

② GET 請求長度限制為1K;

③ GET 請求可被緩存

?

2,

① POST 請求一般通過消息體發(fā)送數(shù)據(jù), 例如:

② POST 請求對數(shù)據(jù)長度沒有限制

③ POST 請求不會被緩存

※ GET請求的其它特征:

GET 請求保留在瀏覽器歷史記錄中

GET 請求可被收藏為書簽

GET 請求不應(yīng)在處理敏感數(shù)據(jù)時使用

GET 請求只應(yīng)當(dāng)用于取回數(shù)據(jù)

?

※ POST請求的其它特征:

POST 請求不會保留在瀏覽器歷史記錄中

POST 不能被收藏為書簽

?

其他 HTTP 請求方法(了解)

HEAD: GET 相同,但只返回 HTTP 報頭,不返回文檔主體。

PUT: 上傳指定的 URI 表示。

DELETE: 刪除指定資源。

OPTIONS: 返回服務(wù)器支持的 HTTP 方法。

CONNECT: 把請求連接轉(zhuǎn)換到透明的 TCP/IP 通道。

?

請求消息案例

GET請求消息:

?

POST請求消息:

?

請求頭可以有cookie, 例如:

?

※ HttpRequest & HttpResponse中常見的四種ContentType/POST 提交數(shù)據(jù)方式對應(yīng)的四種常見Content-Type取值

※ Content-Type又叫Mime-Type(Multipurpose Internet Mail Extensions--多用途互聯(lián)網(wǎng)郵件擴展類型)

※ HTTP Content-type的總表: http://tool.oschina.net/commons/

application/x-www-form-urlencoded 這應(yīng)該是最常見的 POST 提交數(shù)據(jù)的方式了。瀏覽器的原生 form 表單,如果不設(shè)置 enctype 屬性,那么默認以 application/x-www-form-urlencoded 方式提交數(shù)據(jù)。請求類似于下面這樣(無關(guān)的請求頭在本文中都省略掉了):

?

POST http://www.example.com HTTP/1.1 Content-Type: application/x-www-form-urlencoded;charset=utf-8

?

title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3

?

首先,Content-Type 被指定為 application/x-www-form-urlencoded;其次,提交的數(shù)據(jù)按照 key1=val1&key2=val2 的方式進行編碼,key val 都進行了 URL 轉(zhuǎn)碼。大部分服務(wù)端語言都對這種方式有很好的支持。 很多時候,我們用 Ajax 提交數(shù)據(jù)時,也是使用這種方式。例如 JQuery QWrap AjaxContent-Type 默認值都是「application/x-www-form-urlencoded;charset=utf-8」。

?

② multipart/form-data ③ application/json ④ text/xml
注意: ① Content-Type一般只存在于POST方法中,因為GET方法請求參數(shù)都會被編碼到url后面,所以在GET方法中加Content-ype是無用的。 如果使用的是POST方式,并且數(shù)據(jù)是由from表單提交,那么就必須把content-Type設(shè)為application/x-www-form-urlencoded(也可以不指定Content-Type, 因為Content-Type默認是application/x-www-form-urlencoded),否則后臺是無法接收到數(shù)據(jù)的。 HTTP請求消息和響應(yīng)消息的數(shù)據(jù)類型都是Content-Type; 不過, jQuery ajax, 發(fā)送至服務(wù)器的數(shù)據(jù)類型寫作"contentType", 服務(wù)器返回的數(shù)據(jù)類型寫作"dataType":

contentType

類型:String

默認值: "application/x-www-form-urlencoded"。發(fā)送信息至服務(wù)器時內(nèi)容編碼類型。

默認值適合大多數(shù)情況。如果你明確地傳遞了一個 content-type $.ajax() 那么它必定會發(fā)送給服務(wù)器(即使沒有數(shù)據(jù)要發(fā)送)。

dataType

類型:String

預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動根據(jù) HTTP MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。在 1.4 中,JSON 就會生成一個 JavaScript 對象,而 script 則會執(zhí)行這個腳本。隨后服務(wù)器端返回的數(shù)據(jù)會根據(jù)這個值解析后,傳遞給回調(diào)函數(shù)。可用值:

  • "xml": 返回 XML 文檔,可用 jQuery 處理。
  • "html": 返回純文本 HTML 信息;包含的 script 標(biāo)簽會在插入 dom 時執(zhí)行。
  • "script": 返回純文本 JavaScript 代碼。不會自動緩存結(jié)果。除非設(shè)置了 "cache" 參數(shù)。注意:在遠程請求時(不在同一個域下),所有 POST 請求都將轉(zhuǎn)為 GET 請求。(因為將使用 DOM script標(biāo)簽來加載)
  • "json": 返回 JSON 數(shù)據(jù)
  • "jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。
  • "text": 返回純文本字符串

?

詳見: http://www.w3school.com.cn/jquery/ajax_ajax.asp

※ HTML <form> 標(biāo)簽的 enctype 屬性

enctype 屬性規(guī)定在發(fā)送到服務(wù)器之前應(yīng)該如何對表單數(shù)據(jù)進行編碼。

默認地,表單數(shù)據(jù)會編碼為 "application/x-www-form-urlencoded"。就是說,在發(fā)送到服務(wù)器之前,所有字符都會進行編碼(空格轉(zhuǎn)換為 "+" 加號,特殊符號轉(zhuǎn)換為 ASCII HEX 值)。

<form action="form_action.asp" enctype="text/plain">

<p>First name: <input type="text" name="fname" /></p>

<p>Last name: <input type="text" name="lname" /></p>

<input type="submit" value="Submit" />

</form>

?

enctype 屬性的值:

① application/x-www-form-urlencoded:在發(fā)送前編碼所有字符(默認)

② multipart/form-data:不對字符編碼。用表單上傳文件時, 必須使用該值。

③ text/plain:空格轉(zhuǎn)換為 "+" 加號,但不對特殊字符編碼。

?

狀態(tài)碼

1XX:信息性狀態(tài)碼

2XX:成功狀態(tài)碼,200表示請求成功, 一般用于GETPOST請求

3XX:重定向狀態(tài)碼

4XX:客戶端錯誤狀態(tài)碼,404表示沒有找到請求的資源

5XX:服務(wù)器端錯誤狀態(tài)碼,500表示內(nèi)部錯誤

詳見: http://www.runoob.com/http/http-status-codes.html

?

?

2● 服務(wù)器發(fā)出的響應(yīng)消息(response)

響應(yīng)首行status-line

響應(yīng)頭 request headers

\r\n\r\n 空行

響應(yīng)體 response body

?

也就是:

[http協(xié)議版本] [狀態(tài)碼] [描述信息]

[頭字段1]: 1

[頭字段2]: 2

/r/n/r/n

[請求體]

案例:

?

tcphttp的區(qū)別和聯(lián)系

傳輸層的TCP是基于網(wǎng)絡(luò)層的IP協(xié)議的,

而應(yīng)用層的HTTP協(xié)議又是基于傳輸層的TCP協(xié)議的,

Socket本身不算是協(xié)議,它只是提供了一些使用TCP/UDP編程的接口,例如create()listen()connect()accept()send()read()write()等等

兩種網(wǎng)絡(luò)構(gòu)架:

① C/S架構(gòu)--例如安卓手機上的原生APP

② B/S架構(gòu)--例如安卓手機上的Web APP

?

web應(yīng)用涉及的過程

一個請求/處理/響應(yīng)的過程:

瀏覽器先向服務(wù)器發(fā)送請求

服務(wù)器接收到請求后,做相應(yīng)的處理,然后封裝好響應(yīng)報文,再回送給瀏覽器

瀏覽器拿到響應(yīng)報文后,再通過瀏覽器引擎去渲染網(wǎng)頁(其實就是字符串替換),解析DOM

④ javascript引擎解析并執(zhí)行腳本操作,插件去干插件該干的事兒

詳見: http://kb.cnblogs.com/page/129756/

?

web應(yīng)用的本質(zhì)

一個socket服務(wù)端用戶的瀏覽器其實就是一個socket客戶端

?

HTTP通信傳輸過程

?

?

?

?

?

● MVC

定義

※ MVC框架的核心思想--解耦

m表示model,負責(zé)與數(shù)據(jù)庫進行交互

最底下的一層是核心的"模型層"Model),也就是程序需要操作的數(shù)據(jù)或信息用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對數(shù)據(jù)的處理方法。"Model"有對數(shù)據(jù)直接訪問的權(quán)力,例如對數(shù)據(jù)庫的訪問。

?

v表示view,用于向用戶展示結(jié)果

最上面的一層是直接面向最終用戶的"視圖層"View是提供給用戶的操作界面,是程序的外殼。

?

c表示controller,是核心,負責(zé)處理請求、獲取數(shù)據(jù)、返回結(jié)果

中間的一層"控制層"Controller),它根據(jù)用戶從"視圖層"輸入的指令,選取"模型層"中的數(shù)據(jù),

然后對其進行相應(yīng)的操作,產(chǎn)生最終結(jié)果。

?

?

?

?

● MTV

定義

django, 控制器接收用戶輸入的部分由框架自行處理, 所以django更關(guān)注的是模型(model), 模板(template)和視圖(view)

① m表示model,負責(zé)與數(shù)據(jù)庫進行交互

② v表示view,是核心,負責(zé)處理請求、獲取數(shù)據(jù)、返回結(jié)果

③ t表示template,負責(zé)呈現(xiàn)內(nèi)容到瀏覽器

三者的關(guān)系: 視圖函數(shù), 使得模型類和模板銜接起來.

?

前端和后端進行數(shù)據(jù)交互的3種方式

1, a標(biāo)簽

2, form表單

3, ajax

form的驗證思路為例:

前端:提交form表單

后臺:創(chuàng)建form類,當(dāng)請求到來時,先匹配,匹配出正確和錯誤信息。

?

?

● Django框架執(zhí)行流程圖

1, 客戶端的瀏覽器發(fā)起一個url請求;

2, 路由配置(URLconf)根據(jù)URL匹配view.py里對應(yīng)的視圖函數(shù), 當(dāng)有緩存頁面的時候直接返回內(nèi)容。

3, 視圖函數(shù)執(zhí)行所請求的操作, 通常包括從Models里讀取數(shù)據(jù);

4, Models將數(shù)據(jù)返回給視圖;

5, 視圖將要展示的數(shù)據(jù)返回給template模板.

?

?

● Django的安裝

# pip 安裝 pip install Django==1.10 # 克隆下載最新版本 git clone https://github.com/django/django.git # 導(dǎo)入django模塊 >>> import django >>> print(django.get_version()) 1.10

?

● Django的基本命令

# 查看django版本 $ python -m django --version

?

# 創(chuàng)建項目,名為mysite $ django-admin startproject mysite

?

# 啟動django $ python manage.py runserver $ python manage.py runserver 8080 $ python manage.py runserver 0.0.0.0:8000

?

# 創(chuàng)建應(yīng)用程序,確保和 manage.py 是同一目錄 $ python manage.py startapp polls # setting.pyINSTALLED_APPS列表里添加"polls"

?

# admin創(chuàng)建管理員用戶 $ python manage.py createsuperuser

python manger.py makemigrations

model層轉(zhuǎn)換為migration遷移文件--建立migrations目錄,并記錄下你所有的關(guān)于modes.py的改動,例如0001_initial.py

?

python manger.py migrate

執(zhí)行新版本的遷移文件,并更新數(shù)據(jù)庫, 生成表

?

● Django項目結(jié)構(gòu)

命令:

django-admin startproject helloDjango2

python manage.py startapp blog

目錄結(jié)構(gòu)如下圖:

manage.py:一個命令行工具,可以使你用多種方式對Django項目進行交互

內(nèi)層的目錄:項目的真正的Python

__init __.py:一個空文件,它告訴Python這個目錄應(yīng)該被看做一個Python

settings.py:項目的配置

urls.py:項目的URL聲明

wsgi.py:項目與WSGI兼容的Web服務(wù)器入口, 部署到ngix服務(wù)器上需要使用到的

?

● Django的處理流程/生命周期

1.用戶通過瀏覽器發(fā)送HTTP請求, 然后Django創(chuàng)建一個包含請求元數(shù)據(jù)的 HttpRequest對象

2. HttpRequest對象到達各個中間件,中間件對HttpRequest對象做預(yù)處理或者直接返回HttpResponse對象

3.若未返回HttpResponse對象,HttpRequest對象會到達URLconf路由,找到對應(yīng)視圖(view)函數(shù)

4.視圖函數(shù)做相應(yīng)的預(yù)處理或直接返回HttpResponse對象或HttpResponse子類對象.

5.視圖函數(shù)可以選擇性的通過Models訪問底層的數(shù)據(jù)

6.視圖函數(shù)將數(shù)據(jù)返回給Django的模板系統(tǒng),templates通過filtertags把數(shù)據(jù)渲染到模板上

7.模板被渲染之后, Django將它作為 HttpResponse對象返回到瀏覽器, 然后展示給用戶.

幫助理解Django的處理流程的幾段話:

① Django將請求報文中的請求行、首部信息、內(nèi)容主體封裝成 HttpRequest 類中的屬性。除了session外的所有屬性都應(yīng)該認為是只讀

一般視圖函數(shù)約定俗成地使用 request(而不是HttpRequest) 作為形參來承接這個對象。

上述流程中最主要的幾個部分分別是:Middleware(每一個中間件是一個類,包括request, view, exception, response)URLConf(url映射關(guān)系)Template(模板系統(tǒng))

當(dāng)一個頁面被請示時,Django創(chuàng)建一個包含請求元數(shù)據(jù)的 HttpRequest 對象。然后Django調(diào)入合適的視圖,把 HttpRequest 作為視圖函數(shù)的第一個參數(shù)傳入, 每個視圖要負責(zé)返回一個 HttpResponse 對象或HttpResponse子類對象。

?

常用的HttpRequest屬性有HttpRequest.GETHttpRequest.POST, 詳見:

https://www.cnblogs.com/scolia/archive/2016/07/01/5633351.html

⑥ Django框架處理流程的核心在于中間件(middleware)Django所有的請求、響應(yīng)都由中間件來完成

⑦ Middleware"設(shè)計模式"里的Decorator(裝飾器)。

?

?

?

?

?

?

視圖(函數(shù))(V)

定義

視圖函數(shù)(或視圖是一個接受 Web 請求并返回 Web 響應(yīng)的 Python 函數(shù)或類。

?

該響應(yīng)可以是一份網(wǎng)頁的 HTML 內(nèi)容、一次重定向、一條 404 錯誤、一份 XML 文檔、一幅圖片,或其它任何東西。

?

視圖函數(shù)是存放應(yīng)用邏輯的地方。它將從你之前創(chuàng)建的模型中獲取數(shù)據(jù),并將它傳遞給模板

?

● FBV & CBV

基于函數(shù)的view,叫作FBV (function-based view)

基于類的view,叫作CBV (class-based view)

# FBV 寫法 # urls.py url(r'^login/$',views.login, name="login"),

?

# views.py def login(request): if request.method == "POST": print(request.POST)

?

return render(request,"login.html")

?

# HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>登錄頁面</title> </head> <body> <form action="{% url 'login' %}"method="post" enctype="multipart/form-data"> <input type="text" name="user2"> <input type="file" name="file"> <input type="submit" value="提交"> </form> </body> </html>
# CBV 寫法 # urls.py url(r'^login/$',views.Login.as_view(), name="login"),

?

# views.py from django.views import View class Login(View): # 類首字母大寫 def get(self,request): return render(request,"login.html") def post(self,request): print(request.POST) return HttpResponse("OK")

?

?

?

?

● HttpRequest對象 & HttpResponse對象

當(dāng)一個頁面被請示時,Django創(chuàng)建一個包含請求元數(shù)據(jù)的HttpRequest 對象;

然后Django調(diào)入合適的視圖,把 HttpRequest 作為視圖函數(shù)的第一個參數(shù)傳入;

每個視圖要負責(zé)返回一個HttpResponse對象或HttpResponse子類對象。

詳見: http://python.usyiyi.cn/translate/django_182/ref/request-response.html

?

● HttpRequest對象

HttpRequest 表示來自某客戶端的一個單獨的HTTP請求。

HttpRequest實例的屬性包含了關(guān)于此次請求的大多數(shù)重要信息;除了session外的所有屬性都應(yīng)該認為是只讀的。

需要記住的HttpRequest對象的屬性:

methodGETPOSTCOOKIESsessionfilesuserbodypath

① HttpRequest.method

一個字符串,表示請求使用的HTTP 方法。必須使用大寫。例如:

if request.method == 'GET': do_something() elif request.method == 'POST': do_something_else()

※ form method="post" (post必須小寫), 但是request.method=="POST"request.POST中的POST又必須大寫.

?

② HttpRequest.GET

一個類似于字典的對象(django.http.QueryDict類的實例),包含HTTP GET 的所有參數(shù)

?

③ HttpRequest.POST

一個包含所有給定的HTTP POST參數(shù)的類字典對象(django.http.QueryDict類的實例),提供了包含表單數(shù)據(jù)的請求。

如果需要訪問請求中的原始或非表單數(shù)據(jù),可以使用HttpRequest.body 屬性。

?

POST 請求可以帶有空的POST 字典 —— 如果通過HTTP POST 方法請求一個表單但是沒有包含表單數(shù)據(jù)的話。因此,不應(yīng)該使用if request.POST 來檢查使用的是否是POST 方法;應(yīng)該使用if request.method == "POST"

?

注意:POST 不包含上傳的文件信息。參見FILES

?

④ HttpRequest.COOKIES

一個標(biāo)準(zhǔn)的Python 字典,包含所有的cookie。鍵和值都為字符串。

request.COOKIES['sessionid'] # 獲取

request.COOKIES.get('sessionid', None) # 獲取

?

COOKIES的設(shè)置通過HttpResponse對象的set_cookie()方法來完成

?

⑤ HttpRequest.session

一個既可讀又可寫(只有session可寫)的類似于字典的對象,表示當(dāng)前的會話。只有當(dāng)Django 啟用會話的支持時才可用。

fav_color = request.session['fav_color'] #get

request.session['fav_color'] = 'blue' #set

del request.session['fav_color'] #del

'fav_color' in request.session #contains

fav_color = request.session.get('fav_color', 'red') #get

fav_color = request.session.pop('fav_color') # pop

?

?

⑥ HttpRequest.FILES

一個類似于字典的對象,包含所有的上傳文件。

FILES 中的每個鍵為<input type="file" name="" /> 中的name

?

注意,FILES 只有在請求的方法為POST 且提交的<form> 帶有enctype="multipart/form-data" 的情況下才會包含數(shù)據(jù)。否則,FILES 將為一個空的類似于字典的對象。

?

⑦ HttpRequest.user

一個AUTH_USER_MODEL(驗證用戶模型)類型的對象,表示當(dāng)前登錄的用戶。如果用戶當(dāng)前沒有登錄,user 將設(shè)置為django.contrib.auth.models.AnonymousUser 的一個實例。你可以通過is_authenticated() 區(qū)分它們,像這樣:

if request.user.is_authenticated(): # Do something for logged-in users. else: # Do something for anonymous users.

※ HttpResponse.user 只有當(dāng)Django 啟用AuthenticationMiddleware 中間件時才可用。

※ AUTH_USER_MODELsettings.py中設(shè)置, 例如

AUTH_USER_MODEL = "blog.UserInfo" # 覆蓋默認的User模型, # 注意:UserInfo表繼承了AbstractUser,需要在settings 中寫入:AUTH_USER_MODEL ="應(yīng)用名.UserInfo"

?

⑧ HttpRequest.body

一個字符串,代表請求報文的主體。在處理非 HTTP 報文時非常有用,例如:二進制圖片、XML,Json等。

但是,如果要處理表單數(shù)據(jù)的時候,推薦還是使用 HttpRequest.POST

另外,我們還可以用 python 的類文件方法去操作它,詳情參考 HttpRequest.read()

HttpRequest.body的形式:

b'name=Arroz'

?

HttpRequest.POST的形式:

<QuerySet: {'name': ['Arroz']}> # 更容易取值

?

⑨ HttpRequest.path

一個字符串,表示請求的頁面的完整路徑,不包含域名。

例如:"/music/bands/the_beatles/"

HttpRequest對象的方法:

① HttpRequest.get_host()

② HttpRequest.get_full_path()

print(request.path) # /login/ print(request.get_host()) # 127.0.0.1:8000 print(request.get_full_path()) # /login/?name=Arroz

?

③ HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)

④ HttpRequest.is_secure()

⑤ HttpRequest.is_ajax()

?

● HttpResponse對象

與由Django自動創(chuàng)建的HttpRequest對象相比,HttpResponse對象是我們的職責(zé)范圍了。我們寫的每個視圖都需要實例化,填充和返回一個HttpResponse對象或HttpResponse子類對象。

?

下面兩個引入的HttpResponse類是一樣的

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

傳遞字符串

from django.http import HttpResponse response = HttpResponse("Here's the text of the Web page.") # 實例化 response = HttpResponse("Text only, please.", content_type="text/plain")

?

設(shè)置或刪除響應(yīng)頭信息

response = HttpResponse() response['Content-Type'] = 'text/html; charset=UTF-8'

?

del response['Content-Type']

?

常用屬性

HttpResponse.content: 響應(yīng)內(nèi)容, bytes格式

HttpResponse.charset: 響應(yīng)內(nèi)容的編碼

HttpResponse.status_code: 響應(yīng)的狀態(tài)碼

HttpResponse.streaming: 這個屬性永遠為假,一般用于中間件

HttpResponse.closed: 關(guān)閉

例如:

def post(request): res=HttpResponse("OK") print(res.content) # b'ok' print(res.charset) # utf-8 print(res.status_code) # 200 return res

?

?

常用方法

HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False) # 設(shè)置一個cookie

?

HttpResponse.set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True) # 設(shè)置加密的cookie(加鹽的cookie)

?

HttpResponse.delete_cookie(key, path='/', domain=None) #刪除Cookie與給定鍵。

?

參數(shù)說明:

key, #

value='', #

max_age=None, # 超時時間

expires=None, # 超時時間(IE requires expires, so set it if hasn't been already.)

path='/', # Cookie生效的路徑,/ 表示根路徑,特殊的:跟路徑的cookie可以被任何url的頁面訪問

domain=None, # Cookie生效的域名

secure=False, # 采用https傳輸

httponly=False # 只能http協(xié)議傳輸,無法被JavaScript獲取(不是絕對,底層抓包可以獲取到也可以被覆蓋)

?

由于cookie保存在客戶端的電腦上,所以,JavaScriptjquery也可以操作cookie,例如:

// 創(chuàng)建一個cookie并設(shè)置cookie的有效路徑:

$.cookie('cookieName', 'cookieValue', {expires: 7, path: '/'});

?

● JsonResponse對象

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,主要用于傳送數(shù)據(jù)。

JsonResponseHttpResponse的子類,專門用來生成JSON編碼的response

from django.http import JsonResponse

?

response = JsonResponse({'foo': 'bar'}) print(response.content) # b'{"foo": "bar"}'

?

# 默認只能傳遞字典類型,如果要傳遞非字典類型需要設(shè)置一下safe關(guān)鍵字參數(shù)。

response = JsonResponse([1, 2, 3], safe=False)

?

?

?

?

● URLconf, 路由配置 (作為V的一部分)

router, 路由, 安排路線的人

請求的url被看做是一個普通的python字符串,進行匹配時不包括getpost請求的域名、端口和參數(shù)

?

urlpatterns = [] #里面存放著一個個url()對象 / 一個個url映射元素 / 一條條的路由映射關(guān)系.

?

url()函數(shù)

url(正則表達式, view視圖函數(shù),參數(shù)[可選],別名[可選])

例如:

url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}, "arch-summary"),

?

參數(shù)說明:

參數(shù): 可選的、要傳遞給視圖函數(shù)的默認參數(shù)(字典形式)

?

被圓括號包圍的正則表達式組(group)會捕獲URL 中的值并作為位置參數(shù)傳遞給視圖函數(shù)。

?

?

url()函數(shù)的兩種語法

語法一:url(正則,'view函數(shù)')

指定正則和視圖的對應(yīng)關(guān)系

在應(yīng)用內(nèi)部創(chuàng)建urls.py文件,指定請求地址與視圖的對應(yīng)關(guān)系

說明1:正則部分推薦使用r,表示字符串不轉(zhuǎn)義,這樣在正則表達式中使用\只寫一個就可以

說明2:不能在開始加反斜杠,推薦在結(jié)束加反斜杠

?

語法二:url(正則,include('應(yīng)用.urls'))

把每個應(yīng)用的 URL 寫在它們各自的 urls.py 配置文件里,然后在項目文件下的 urls.py 里用 include() 函數(shù)引用:

例如:

url(r'^violet/',?include('violet.urls')),? #這里引入應(yīng)用?violet?下的?urls.py?配置文件; violet/開頭的url被轉(zhuǎn)接到violet.urls.py文件, django會把url字符串前面被正則表達式匹配到的r'^violet/'砍掉(chop off),剩下的string傳遞到includeurls中進行進一步匹配。

?

再如:

url(r'^admin/', include(admin.site.urls))

?

● url映射(mapping)的解析

?

補充:

① url請求樣式也叫作"url"標(biāo)簽

② url標(biāo)簽也可以寫成: {% url 'user_detail' user.id %}, 此時url元素的第一個參數(shù)應(yīng)該是r'^user/detail/([0-9]+)/$', /user/detail/1

如果url匹配時攜帶參數(shù)(例如上面的有名分組"(?P<pk>[0-9]+)"), 那么,在匹配到視圖時就需要傳入一個參數(shù)(例如上面user_detail函數(shù)的參數(shù)"pk"), 在頁面中的url反向解析,也要傳入對應(yīng)參數(shù)(例如上面url標(biāo)簽中的"pk=user.id")

?

有名分組和無名分組的案例:

無名分組: # url(r'^articls/(\d{4})/(\d{2})$', views.archive3,), # archive2(request,2000,11) 有名分組: # url(r'^articls/(?P<y>\d{4})/(?P<m>\d{2})$', views.archive4,), # archive2(request,y=2000,m=11)

URL的映射的解析有兩種:

一般的url解析: 由客戶端的瀏覽器發(fā)起一個url請求,Django根據(jù)URLconf,把url中的參數(shù)捕獲,調(diào)用相應(yīng)的視圖,獲取相應(yīng)的數(shù)據(jù),然后返回給客戶端顯示. ()

② url反向解析:通過一個視圖的別名,加上一些參數(shù)和值(如果有的話),逆向獲取相應(yīng)的URL通過url的別名, 可以自動更新而不用遍歷項目的源代碼搜索并替換過期的URL(url反向解析也叫url逆向解析,url逆向匹配,url的逆向查閱,等)

?

Django提供了不同的層級的url反向向解析處理工具:

在模板templates中,使用url標(biāo)記,如:{% url 'user_detail' pk=user.id %}

####art.html <h1>{{ day }}</h1> <a href="{% url 'app01-art' %}">點擊</a> #url更改,則模板中的url引用也會隨著更改

?

####urls.py from django.conf.urls import url,includefrom app01 import views urlpatterns = [ url(r'^art/', views.art3, name='app01-art'), ]

?

####views.py def art3(request): return render(request,"art.html",{"day":"abc"})

?

?

Python代碼中,使用django.core.urlresolvers.reverse()方法

####urls.py from django.conf.urls import url,includefrom app01 import views urlpatterns = [ url(r'^art/', views.art3, name='app01-art'), ]

?

####views.py def art3(request): print(reverse('app01-art')) #在視圖函數(shù)中對url進行反向解析 return HttpResponse("OK")

?

還有一種url解析方案了解即可: 在更高層次處理model實例時,可以使用get_absolute_url()方法

?

● url的命名空間

為各url起別名時要根據(jù)不同用途進行名稱上的區(qū)別,但當(dāng)各應(yīng)用很多,通過路由分發(fā),各應(yīng)用中的urls難免會有重復(fù),因此要名稱空間,根據(jù)不同的應(yīng)用建立不同的命名空間,否則當(dāng)各url中有重名的,就只會找到最后一個加載的url.

# 項目的urls.py from django.conf.urls import url, include from django.contrib import admin

?

urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^app01/', include('app01.urls', namespace="app01")), url(r'^app02/', include("app02.urls", namespace="app02")),]

?

# app01應(yīng)用的urls.py文件 from django.conf.urls import url from app01 import views

?

urlpatterns = [ url(r'^index/', views.index, name="index"), ]

?

# app02應(yīng)用的urls.py文件 from django.conf.urls import url from app02 import views

?

urlpatterns = [ url(r'^index/', views.index, name="index"), ]

?

# 情況1: url標(biāo)記中寫出命名空間: {% url 'app01:index' %}

?

# 情況2: app02的視圖函數(shù)中反向解析app01中的urlapp02中的url from django.shortcuts import render, HttpResponse from django.core.urlresolvers import reverse

?

?

def index(request): print(reverse("app01:index")) # /app01/index/

?

print(reverse("app02:index")) # /app02/index/ return HttpResponse("OK")

?

?

視圖函數(shù)的3種返回值

from django.shortcuts import render, HttpResponse, redirect

1, render(request, template_name, context=None, content_type=None, status=None, using=None) # 返回HttpResponse對象

例如:

a,

return?render(request,?'user/user_detail.html',?{'data':?user})

b,

now=datetime.datetime.now()

html="<html><body>現(xiàn)在時刻:<h1>%s.</h1></body></html>" %now

return HttpResponse(html)

?

① request: 是一個固定參數(shù)。

② template_name: templates 中定義的文件, 要注意路徑名. 比如'templates\polls\index.html', 參數(shù)就要寫'polls\index.html'

③ context: 后臺返回給瀏覽器的、用于渲染的數(shù)據(jù), 是字典格式,例如上面發(fā)的{'data':?user}, data是自定義的指針名字, 它會被index.html引用(不是user_list)

④ status: 為響應(yīng)狀態(tài)代碼, 默認值為200

⑤ using: 用于加載模板使用的模板引擎的名稱。

2, HttpResponse(content= ' ', mimetype=DEFAULT_CONTENT_TYPE) # 返回HttpResponse對象

# content是字符串格式, mimetype指明的是消息內(nèi)容類型,例如:

a,

return HttpResponse("登陸成功")

?

b,

res = {" success": False, "error": ""}

return HttpRepsponse(json.dumps(res), mimetype="application/json")

?

c,

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)

?

d, django下載文件, 詳見: http://blog.csdn.net/w6299702/article/details/38777165

response = HttpResponse(readFile(filepath_),content_type='APPLICATION/OCTET-STREAM')

#設(shè)定文件頭,這種設(shè)定可以讓任意文件都能正確下載,而且已知文本文件不是本地打開

response['Content-Disposition'] = 'attachment; filename='+filename_.encode('utf-8') + filetype_.encode('utf-8')

#設(shè)定傳輸給客戶端的文件名稱

response['Content-Length'] = os.path.getsize(filepath_)

#傳輸給客戶端的文件大小

3, redirect(to, permanent=False, *args, **kwargs) # 返回HttpResponseRedirect對象(HttpResponse的子類對象)

# 默認情況下,為臨時重定向;通過 permanent=True 設(shè)置永久重定向, 例如:

a, 傳遞一個視圖的名稱

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

?

b, 傳遞要重定向到的一個具體的網(wǎng)址

def my_view(request): ... return redirect('/some/url/')

?

c, 傳遞一個完整的網(wǎng)址

def my_view(request): ... return redirect('http://example.com/')

Django1.3開始, render()方法是render_to_response的一個嶄新的快捷方式,前者會自動使用RequestContext, 而后者必須coding出來,這是最明顯的區(qū)別,當(dāng)然前者更簡潔。

?

return render(request, 'blog_add.html', {'blog': blog, 'form': form, 'id': id, 'tag': tag})

return render_to_response('blog_add.html',{'blog': blog, 'form': form, 'id': id, 'tag': tag},

context_instance=RequestContext(request))

?

locals()用法:locals()可以直接將函數(shù)中所有的變量全部傳給模板。當(dāng)然這可能會傳遞一些多余的參數(shù),有點浪費內(nèi)存的可能。例如:

return render(request, 'blog_add.html',locals())

轉(zhuǎn)載于:https://www.cnblogs.com/ArrozZhu/p/8463864.html

總結(jié)

以上是生活随笔為你收集整理的Django知识总结(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

午夜精品视频在线 | 色婷婷电影网 | 久久8精品 | 欧美性色综合网站 | 久久草草热国产精品直播 | 欧美乱码精品一区 | av成人免费网站 | 九九九热精品免费视频观看 | 日韩精品一区二区三区水蜜桃 | 亚洲国产字幕 | 一区中文字幕在线观看 | 国产高清视频色在线www | 日日操日日插 | 日韩视频免费看 | 国产亚洲情侣一区二区无 | 久草在线精品观看 | 亚洲精品乱码久久久久久9色 | 亚洲成人黄色av | 日韩精品中文字幕有码 | 午夜精品99久久免费 | 国产青草视频在线观看 | 手机看片午夜 | 狠狠色狠狠色综合日日92 | 日韩免费观看视频 | 亚洲第一av在线播放 | 色爽网站| 欧美日韩视频精品 | 91精品啪在线观看国产81旧版 | 亚洲开心激情 | 中文字幕欲求不满 | 日韩在线观看网址 | 久久av免费| 天天操夜夜想 | 国产成人精品一区二区三区福利 | 精品电影一区 | 国产亚洲精品电影 | 国产激情久久久 | 黄色大全免费观看 | 久久99久久久久 | 麻豆免费视频网站 | 99久久精品国产欧美主题曲 | 国产一级免费播放 | av片免费播放 | 操操操com | 国产精品久久在线观看 | 伊人夜夜 | 成人午夜影院在线观看 | 国产在线观看免费观看 | www狠狠操 | 六月丁香激情综合 | 激情网五月婷婷 | 色综合欧洲 | 久久国内精品99久久6app | 国产精品涩涩屋www在线观看 | 亚洲精品在线看 | 99久久99久久精品免费 | 91成年人在线观看 | 黄色在线观看免费网站 | www.夜夜操.com | 国产精品麻豆91 | 国产精品乱码久久久久 | 国产韩国精品一区二区三区 | 五月婷婷六月丁香 | 日韩综合视频在线观看 | 久久久国际精品 | 97超碰在线资源 | 国产特级毛片aaaaaaa高清 | 色香蕉在线 | 精品成人在线 | 91在线视频观看 | 国产在线观看xxx | 在线亚洲激情 | 久久久国产99久久国产一 | 免费在线观看一区二区三区 | 九九精品视频在线看 | 波多野结衣网址 | 久久免费电影网 | 在线视频日韩一区 | 波多野结衣精品视频 | 又色又爽又黄 | 综合久久久 | 天天干夜夜 | 国产人免费人成免费视频 | 免费的成人av | 国内精品久久久久久中文字幕 | 999久久国产精品免费观看网站 | 久久午夜免费观看 | 国产免费久久久久 | a黄色一级 | 狠狠躁夜夜躁人人爽超碰91 | 91香蕉视频在线下载 | 久久看免费视频 | 欧美视频www | 成人av一区二区兰花在线播放 | 亚洲精品88欧美一区二区 | 欧美黄污视频 | 9i看片成人免费看片 | 免费的成人av | 在线午夜电影神马影院 | 国产系列 在线观看 | av免费观看网站 | 特及黄色片 | 久久免费黄色大片 | 天天射天天爽 | 一区二区 不卡 | 9在线观看免费高清完整版 玖玖爱免费视频 | 又黄又爽又刺激 | 久久久久久国产精品免费 | 国产老熟 | 999在线视频 | 免费网站在线 | 在线97| 成人精品视频 | 91热视频| 成人啊 v| 99在线精品免费视频九九视 | 日韩精品在线播放 | 丁香免费视频 | 一区二区不卡在线观看 | 97精品国产手机 | 精品免费一区二区三区 | 99精品在线观看 | 欧美日韩国产一区二区三区在线观看 | 天天天操天天天干 | 蜜臀av一区| 亚洲影视九九影院在线观看 | 麻豆影视在线观看 | 2023亚洲精品国偷拍自产在线 | 亚洲色图 校园春色 | 亚洲国产精品久久久久久 | 国产精品1区2区 | 日韩久久一区二区 | 97视频在线观看网址 | 99免费在线视频观看 | 人人爽人人插 | 91精品视频导航 | 不卡电影免费在线播放一区 | 天天天天天天天天操 | 99日韩精品 | 久久亚洲区 | 欧美黑人性猛交 | 色久网 | 日韩在线电影观看 | 国产高清久久 | 九九热99视频 | 日韩专区在线观看 | 97看片网 | 国产国语在线 | 久久久久久久久久免费视频 | 超碰最新网址 | 久久99久久久久 | 一区二区三区韩国免费中文网站 | 久久久久高清毛片一级 | 又黄又刺激 | 日本最新中文字幕 | 欧美日韩中文字幕在线视频 | 超碰最新网址 | 日韩电影在线视频 | 国产中文字幕一区二区 | 波多野结衣视频网址 | 黄色免费网| 免费的黄色的网站 | 欧美日韩在线电影 | www.夜夜操 | 久久乐九色婷婷综合色狠狠182 | 国产伦精品一区二区三区无广告 | 69亚洲精品 | 国产在线观看免费av | 狠狠干.com | 久久黄色小说视频 | 久久精品系列 | 色av色av色av | 99国内精品久久久久久久 | 91福利在线观看 | 免费中文字幕在线观看 | 国产三级精品在线 | av在线电影免费观看 | 亚洲成年人在线播放 | 麻豆传媒视频观看 | 国产综合久久 | 51久久夜色精品国产麻豆 | 欧美大片www | 日韩免费看片 | 欧美成人亚洲成人 | 韩国三级av在线 | 91精品国产麻豆国产自产影视 | 综合av在线 | 免费久久久 | 久久精品波多野结衣 | 热久久免费视频 | 亚洲精选视频在线 | 天天操天天综合网 | 麻豆91精品视频 | 久久综合九色综合97_ 久久久 | 国产在线不卡视频 | 久草在线在线 | 91av九色 | 在线亚洲播放 | 亚洲最大激情中文字幕 | 国产淫a| 狠狠色丁香久久婷婷综 | 国产精品久一 | 激情五月婷婷综合网 | 日韩在线第一 | 日本成人黄色片 | 综合激情网 | 久久久国产影院 | 伊人看片| 丝袜网站在线观看 | 国产精品9999 | 国产精品成人国产乱一区 | 99看视频在线观看 | 亚洲1区 在线 | 午夜精品久久久久久久99 | 亚洲欧洲精品视频 | 国产成人资源 | 国产1区2区3区精品美女 | 色网av| 五月婷婷六月丁香 | 久久久久久高潮国产精品视 | 午夜91在线 | 97精品国产97久久久久久 | 97成人免费 | 夜夜爽www| 国产一区二区免费在线观看 | 欧美日韩一区二区在线观看 | 天天干夜夜干 | 99在线播放 | 九九热.com | 国产不卡av在线播放 | 成人在线视频免费观看 | 久久精品欧美日韩精品 | 午夜视频在线观看一区二区三区 | 九九精品无码 | 一区二区三区日韩在线 | 国产日韩在线播放 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 日韩 精品 一区 国产 麻豆 | 天天舔天天射天天操 | 国产资源网 | 99精品视频在线播放观看 | 日韩毛片在线免费观看 | 亚洲精品国产精品久久99 | 看黄色91 | 五月婷婷一级片 | 免费观看性生活大片3 | 99久久婷婷国产综合亚洲 | 国产91aaa| 99视频精品全部免费 在线 | 国产 日韩 在线 亚洲 字幕 中文 | 99r在线视频 | 91新人在线观看 | 免费福利在线视频 | 国产最新精品视频 | 国产xvideos免费视频播放 | 国产精品成人自产拍在线观看 | 国产1区2区3区精品美女 | 国产精品久久久久久久久久新婚 | 国产精品久久一区二区三区不卡 | 亚洲视频 在线观看 | 综合成人在线 | 亚洲欧洲精品视频 | 91精品爽啪蜜夜国产在线播放 | 成人在线播放网站 | 亚洲欧美日韩在线一区二区 | 国产一级片播放 | 日韩黄色在线 | 中文在线a√在线 | 日韩有码网站 | 午夜在线看片 | 国产精品毛片一区二区 | 五月婷婷播播 | 超碰在线97免费 | 久久综合五月天婷婷伊人 | 九精品 | www99精品| 美女视频一区二区 | 日韩精品久久一区二区 | 久久国产亚洲精品 | 嫩草av影院 | 97精品国产一二三产区 | 色999五月色 | 成人av影视观看 | 国产中文字幕一区二区 | 国产精品1区2区在线观看 | 久草电影免费在线观看 | 中文字幕在线免费播放 | 91精品久久久久久久久久入口 | 中文字幕 国产视频 | 亚洲精品欧美成人 | 久草热视频 | 精品国产一区二区三区久久久 | 成人免费看电影 | 天天曰天天 | 欧美一二三视频 | 久久久久国产成人精品亚洲午夜 | 久久久综合电影 | 久久免费精品视频 | 亚洲午夜精品久久久久久久久久久久 | 91av视频在线免费观看 | 7777精品伊人久久久大香线蕉 | 亚洲人在线7777777精品 | 亚洲精品福利在线观看 | 国产亚洲精品久 | 免费中文字幕在线观看 | 久黄色| 精品高清美女精品国产区 | 色5月婷婷| 国产精品99久久久久人中文网介绍 | 欧美成人精品欧美一级乱 | 美女性爽视频国产免费app | 国产白浆视频 | 国产在线视频一区二区 | 91专区在线观看 | 欧美a影视 | 91免费网址 | 国产第一页福利影院 | 久久婷婷精品 | 婷婷丁香社区 | 婷婷.com| 香蕉视频日本 | 最近免费中文字幕mv在线视频3 | 一级成人免费视频 | av日韩av| 亚洲一级性 | 日韩在线精品 | 亚洲精品欧美成人 | 色综合天天做天天爱 | 日韩欧美视频一区二区三区 | 一级片视频免费观看 | 精品国产一区二区三区日日嗨 | 99精品视频在线观看视频 | 久久久久福利视频 | 91高清完整版在线观看 | 超碰人人超碰 | 欧美性性网 | 免费人成网ww44kk44 | 麻豆视屏| wwwwww色| 欧美日韩亚洲第一 | 97看片| 人人爽人人爱 | 公开超碰在线 | 亚洲人在线视频 | 成人动漫一区二区三区 | 综合婷婷 | 久久久国产高清 | 在线观看的黄色 | 欧美性色网站 | 午夜电影久久久 | 麻豆国产视频 | 69久久99精品久久久久婷婷 | 丁香花在线观看免费完整版视频 | www.久久成人 | 国产在线91在线电影 | 天天爱天天射天天干天天 | 99久久er热在这里只有精品66 | 日韩精品视频久久 | 在线视频一二区 | 国产自制av | 波多野结衣久久精品 | 中文字幕在线观看视频一区 | 成人午夜免费福利 | 日本精品一区二区在线观看 | 亚洲欧美日韩国产一区二区三区 | 毛片1000部免费看 | 久久久久久久久久伊人 | 亚洲国产中文在线 | 中日韩三级视频 | 久久五月网 | 在线看的毛片 | 亚洲成aⅴ人片久久青草影院 | 精品自拍sae8—视频 | 中文字幕av网站 | 亚洲午夜久久久久久久久 | 999男人的天堂 | 亚洲精品视频在线看 | 日韩一区二区三区观看 | 欧美日韩在线免费观看 | 九九久久影视 | 免费av网址在线观看 | 中文字幕一区二区在线播放 | 精品亚洲成a人在线观看 | 色综合天天综合 | 亚洲高清91 | 精品久久福利 | 成人黄色在线看 | 97天堂网| 久久一区二区三区四区 | 玖玖精品视频 | 在线看中文字幕 | 国产黄色片在线免费观看 | 91色一区二区三区 | 久操伊人| 精品毛片一区二区免费看 | 色香蕉网 | 手机av电影在线 | 婷婷久久一区 | 成人免费精品 | www.五月天色 | 国产91精品一区二区麻豆网站 | 婷婷中文字幕在线观看 | 国产精品国产三级国产aⅴ无密码 | 天天做综合网 | 五月天久久婷 | 国产精品高潮久久av | 亚洲国产欧洲综合997久久, | 国产区精品在线 | 精品亚洲欧美一区 | 国产亚洲精品久久久久久电影 | 日韩一区视频在线 | 日韩中文在线视频 | 国产精品视频免费在线观看 | 丁香花在线视频观看免费 | 国产麻豆成人传媒免费观看 | 日韩久久激情 | 国内精品免费久久影院 | 狠狠色狠狠色综合日日92 | 国产91精品看黄网站在线观看动漫 | 日本aaa在线观看 | 91爱爱中文字幕 | 久久影院亚洲 | 国产黄色免费看 | 日韩有码在线观看视频 | 在线视频18在线视频4k | 丁香六月中文字幕 | 99精品在线视频观看 | 中文字幕免费观看视频 | 免费a网址| 国产剧情久久 | 日韩视频在线观看视频 | 91精品天码美女少妇 | 久久精品牌麻豆国产大山 | 色网免费观看 | 狠狠久久综合 | 蜜臀av免费一区二区三区 | 久爱综合 | 人人爱爱人人 | 国产精品一区二区久久精品爱涩 | 久久久精品成人 | 久久人人爽| 五月激情综合婷婷 | 国产精品久久久久一区 | 黄色激情网址 | 天天在线免费视频 | 日韩精品在线观看视频 | 在线三级av | 亚洲色图 校园春色 | 国产一卡二卡四卡国 | av在线网站大全 | 国产精品成人品 | 美女免费电影 | 玖玖在线免费视频 | 免费观看www小视频的软件 | 66av99精品福利视频在线 | 欧美大码xxxx | 99国产精品久久久久老师 | 91精品导航 | 色综合久久五月天 | 日韩av一区二区在线 | 国产一区欧美在线 | 久久久久亚洲国产 | 国产中文字幕一区二区三区 | 久久一区国产 | 国产精品wwwwww | 欧美国产精品久久久久久免费 | 国产精品无 | 亚洲激情 欧美激情 | 欧美激情综合五月色丁香 | 在线黄色国产 | 人成电影网 | zzijzzij亚洲日本少妇熟睡 | 99热999 | 96国产精品视频 | av资源免费在线观看 | 91 在线视频 | 日韩一区二区三区免费视频 | 亚洲一区动漫 | 在线观看中文字幕一区二区 | 国产精品一区二区电影 | 日韩欧美观看 | 欧美 亚洲 另类 激情 另类 | av在线小说 | 久热香蕉视频 | 日韩av午夜 | 国产不卡一区二区视频 | a级免费观看 | 一区二区三区精品在线视频 | 亚洲午夜久久久久久久久久久 | 超碰在线98| 亚洲日本韩国一区二区 | 中文字幕第一页在线播放 | 97超碰中文 | 日韩av免费观看网站 | 日韩av在线影视 | 亚洲综合在线观看视频 | 欧美日韩精品在线观看视频 | 91av在线免费观看 | 91在线91拍拍在线91 | 婷婷丁香色 | 天天操天天干天天综合网 | 99精品黄色片免费大全 | 狠狠色狠狠色合久久伊人 | 欧美大片在线看免费观看 | 国产精品xxxx18a99 | 日韩欧美精品在线 | 亚洲第一久久久 | 国产亚洲aⅴaaaaaa毛片 | 91片黄在线观看 | 玖玖综合网| 黄色片软件网站 | 亚洲小视频在线观看 | 91久久精品一区二区三区 | 亚洲视频高清 | 国产精品九九久久99视频 | av亚洲产国偷v产偷v自拍小说 | 国产成人专区 | 天天夜夜狠狠操 | 婷婷色资源 | 国产综合久久 | 中文字幕精品www乱入免费视频 | 亚洲国产成人久久 | 午夜av一区二区三区 | 国产香蕉视频在线播放 | 韩日精品中文字幕 | 91精品国产乱码 | 成人中文字幕+乱码+中文字幕 | 国产精品久久久久久五月尺 | av网站在线免费观看 | 欧美91精品 | 久久久久久久免费看 | 国产精品久久久999 国产91九色视频 | 日韩久久网站 | 看片网站黄 | 国产黄免费 | 欧美怡红院视频 | 一级a性色生活片久久毛片波多野 | 久久久久久久久久国产精品 | 天天操夜夜想 | 精品中文字幕在线播放 | 国产在线精 | 色香蕉在线视频 | 亚洲人成在线电影 | 免费av片在线 | 久久精品国产精品亚洲精品 | 在线免费中文字幕 | 色天天综合网 | 国产男男gay做爰 | 免费在线色 | 久久久久女人精品毛片 | 精品九九九九 | 国产精品日韩在线观看 | a电影在线观看 | 亚洲综合在线五月天 | 成人免费xxxxxx视频 | 久久视频免费观看 | 韩国中文三级 | 中文字幕国产一区二区 | 亚洲人成网站精品片在线观看 | 免费久久网 | 国产精品高潮久久av | 国产精品欧美一区二区三区不卡 | 外国av网 | 久久免费视频这里只有精品 | 91av手机在线| av中文字幕电影 | 国产精品毛片一区二区三区 | 亚洲综合成人婷婷小说 | 欧美最猛性xxxx | 97超碰中文字幕 | 在线观看你懂的网址 | 一区二区三区国 | 日韩com| 日韩专区在线播放 | 成人亚洲综合 | 黄色网在线免费观看 | 中文字幕在线观看av | 999热线在线观看 | 久久精品视| 天天射天天干天天插 | 国产精品日韩久久久久 | 丁香5月婷婷 | 亚洲国产无 | 久久久久www| 美女国产免费 | 久久国产福利 | 在线视频精品播放 | 亚洲视频网站在线观看 | 四虎国产精品免费观看视频优播 | 4hu视频| 日韩三级久久 | 天天色天天操天天爽 | 日韩色视频在线观看 | 久久大香线蕉app | 日韩精品一区二区三区免费观看 | 欧美一区影院 | 最近中文字幕mv | 日韩av线观看| 狠狠狠色狠狠色综合 | 日韩欧美国产成人 | 成人精品电影 | 九九99视频| 国产h在线播放 | 在线免费观看国产 | 99精品欧美一区二区蜜桃免费 | 国产一区二区在线播放 | 欧美91片| 国产一区二区三精品久久久无广告 | 久草在线资源视频 | 国产精品国产亚洲精品看不卡15 | 99视频在线观看免费 | 久久激情五月丁香伊人 | 全久久久久久久久久久电影 | 天天综合视频在线观看 | av免费福利 | 欧产日产国产69 | 欧美成人69av| 国产一区成人在线 | 日韩电影一区二区在线 | 久久免费精品国产 | 久久视频 | 一区二区三区免费在线观看视频 | 欧美另类z0zx| www.天天综合 | 国内丰满少妇猛烈精品播 | 一本一本久久a久久精品综合 | 天天爱天天操天天爽 | 久久免费影院 | 亚洲一一在线 | 婷婷在线色 | 成人免费视频视频在线观看 免费 | 色综合久久88 | 91精品人成在线观看 | 日韩精品三区四区 | 操久久免费视频 | 精品亚洲免费视频 | 婷婷av色综合 | 最近中文字幕免费大全 | av高清一区二区三区 | 看国产黄色片 | 久久9999久久免费精品国产 | 一区二区三区在线电影 | 欧美韩日精品 | 最近中文字幕高清字幕在线视频 | 成人高清在线观看 | 中文字幕亚洲不卡 | 亚洲国产成人在线观看 | av色影院| 99热国内精品 | 欧美怡红院 | 精品字幕在线 | 丁香婷婷综合五月 | 99在线高清视频在线播放 | 亚洲天堂在线观看完整版 | 91精品免费在线观看 | 免费观看9x视频网站在线观看 | 国产麻豆果冻传媒在线观看 | 久久综合狠狠综合久久综合88 | 国内精品久久久久国产 | 黄色网www | 精品亚洲午夜久久久久91 | 亚洲激情综合 | 激情婷婷六月 | 伊人色综合久久天天网 | 色综合久久久久 | 日韩精品中文字幕久久臀 | 欧美va天堂va视频va在线 | 在线视频1卡二卡三卡 | 91成人午夜| 国产a级精品 | 色综合在 | 在线免费中文字幕 | 国产精品久久久久久久99 | 国产精品女主播一区二区三区 | 国产一区二区在线免费观看 | 久久人人97超碰国产公开结果 | 香蕉影院在线观看 | 婷婷国产视频 | 中文字幕之中文字幕 | 亚洲国产成人在线播放 | 久久女同性恋中文字幕 | 日韩 精品 一区 国产 麻豆 | 久久久久久99精品 | 国产免费视频在线 | 欧美a√在线 | 国产福利精品在线观看 | 麻豆国产电影 | 黄色午夜| 日韩午夜电影 | 在线日韩亚洲 | 日韩肉感妇bbwbbwbbw | www婷婷| 美女又爽又黄 | 激情综合婷婷 | 成年人视频在线免费观看 | 色综合久久久久综合99 | 久久精品国产成人精品 | 国产精品普通话 | 国内精品视频一区二区三区八戒 | 成人免费看片98欧美 | 精品国产1区 | 丁香一区二区 | 999久久 | 97视频资源 | 久久九九国产精品 | 国产精品麻豆果冻传媒在线播放 | 黄色网在线播放 | 国产精品毛片一区二区在线 | 亚洲日本在线视频观看 | 性色在线视频 | 亚洲国产高清在线 | 久久精品欧美日韩精品 | 日本久久综合网 | av免费线看| 手机看片中文字幕 | 999久久精品 | 99久久婷婷国产精品综合 | 久久国产99| 欧美天天射 | 亚洲1区在线| 精品福利网站 | 成年人黄色在线观看 | a级片久久久 | 欧美激情在线网站 | 天天干天天操天天射 | 黄色.com| 亚洲一区二区精品在线 | 亚洲黄色小说网址 | 中文字幕在线看人 | 在线精品国产 | 久久久影片 | 色婷婷综合在线 | 黄色在线观看免费 | 国产精品com | 成人羞羞免费 | 手机在线永久免费观看av片 | 在线免费观看黄网站 | 91精品国产自产老师啪 | 在线观看国产永久免费视频 | 婷婷丁香狠狠爱 | 黄色免费观看网址 | 在线观看mv的中文字幕网站 | 成人一区在线观看 | 国产在线精品一区二区三区 | 夜夜夜夜操 | 久久婷亚洲五月一区天天躁 | 五月婷视频 | 美女福利视频在线 | 国产福利一区二区三区在线观看 | 91在线免费看片 | 亚洲首页| 99久高清在线观看视频99精品热在线观看视频 | 麻豆成人精品 | 一区二区三区免费在线播放 | 亚洲片在线观看 | 蜜臀久久99精品久久久无需会员 | 97看片| 韩国av在线播放 | 91av在线免费看 | 天天色天天射天天干 | 韩国av一区 | 精品国产一区二区三区在线观看 | 亚洲婷婷免费 | 黄色网在线播放 | 青青草国产精品视频 | 香蕉影院在线播放 | 国产手机视频在线播放 | 黄色官网在线观看 | 久久久免费精品国产一区二区 | 国产蜜臀av | 最新精品视频在线 | 色综合久久中文字幕综合网 | 欧美在线视频不卡 | 成人毛片在线观看 | 黄色亚洲大片免费在线观看 | 中文字幕久久精品 | 福利网在线 | 91免费的视频在线播放 | 亚洲 欧美 成人 | 欧美高清视频不卡网 | 国产成人精品三级 | 91麻豆精品国产自产在线游戏 | 婷婷国产v亚洲v欧美久久 | 999电影免费在线观看 | 国产美女永久免费 | 西西4444www大胆艺术 | 中文字幕在线精品 | 波多野结衣在线中文字幕 | www.黄色片网站 | 精品欧美一区二区在线观看 | 五月天综合色激情 | 97在线观看免费高清完整版在线观看 | 日韩av手机在线看 | 国产a视频免费观看 | 一区二区在线影院 | 欧美性直播 | 久久精品视频在线观看免费 | 欧美日韩高清免费 | 亚洲精品在线免费观看视频 | 亚洲无吗视频在线 | 菠萝菠萝在线精品视频 | 超碰个人在线 | 二区三区av| 成人免费视频播放 | 97人人网 | 91大片网站| 麻豆国产精品一区二区三区 | 一区二区三区四区五区六区 | 五月天久久久久 | 五月天天色 | 国产精品欧美日韩在线观看 | 色偷偷88888欧美精品久久久 | 日韩婷婷 | 午夜免费福利视频 | 91色亚洲 | 亚洲精品视频国产 | 天天干天天操天天入 | 国产 日韩 欧美 在线 | 成人黄色大片在线免费观看 | 香蕉成人在线视频 | 青青草国产在线 | 色综合久久88色综合天天人守婷 | 国产黄色视| 中文字幕在线日 | 在线视频免费观看 | 三级av片 | 精品国产伦一区二区三区观看体验 | 欧美激情另类文学 | 视频福利在线观看 | 中文字幕在线久一本久 | 黄色a在线观看 | 国产精品毛片久久久 | 日韩视频精品在线 | 91完整版在线观看 | 国产精品福利午夜在线观看 | 97超碰在线人人 | 亚洲精品视频在线播放 | 国产99re| 日韩在线国产精品 | 能在线观看的日韩av | 中文字幕乱码电影 | 欧亚日韩精品一区二区在线 | 狠狠的操你 | 麻豆国产精品永久免费视频 | 亚洲三级av| 国产一卡久久电影永久 | 亚洲一区视频免费观看 | 久久99九九99精品 | 美州a亚洲一视本频v色道 | 久久久久国产精品一区二区 | 久久免费视频这里只有精品 | 日本电影久久 | 精品视频网站 | 美女免费av | 亚洲激情影院 | 欧美久久久久久久久久 | 免费成人av电影 | 在线观看91视频 | 欧美极度另类性三渗透 | 欧美一二三视频 | 亚洲欧美成人在线 | 97超碰在线久草超碰在线观看 | 婷婷丁香激情综合 | 国产色网站 | 色婷婷综合久久久 | 日韩欧美高清在线 | 国产精品成人一区二区三区吃奶 | 日本 在线 视频 中文 有码 | 中文视频在线看 | 中文字幕高清免费日韩视频在线 | 最新午夜 | 99在线免费观看视频 | 久久综合久色欧美综合狠狠 | 久久影视一区二区 | 欧美精品v国产精品v日韩精品 | 97视频人人免费看 | 999一区二区三区 | aaa亚洲精品一二三区 | 国产一级三级 | 91久久爱热色涩涩 | 免费国产黄线在线观看视频 | 久久久久久久久久久影视 | 日韩毛片一区 | 天天干亚洲 | 操操操日日日 | 992tv在线成人免费观看 | 91精品一区在线观看 | 久热爱 | 国产精品麻豆99久久久久久 | 天天射天天 | 伊人天堂网 | 国产精选在线 | 久草在线免 | 国产精品123 | 99久久视频| 国产麻豆视频 | 91激情视频在线观看 | 国产精品乱码久久久久久1区2区 | av观看在线观看 | 免费观看一级视频 | 国产短视频在线播放 | a色网站| 中文字幕av免费观看 | 精品亚洲va在线va天堂资源站 | av在线一二三区 | 欧美性爽爽 | 麻豆传媒视频在线 | 中文字幕一区二区三区四区 | 久草成人在线 | 国产精品第72页 | 欧美福利在线播放 | 国产精品一区二区久久精品爱涩 | 国产在线色视频 | 亚洲精品成人av在线 | 午夜av免费 | 首页av在线 | 日韩在线视频网 | 国产视频 亚洲视频 | 狠狠网亚洲精品 | 久久免费资源 | 天天se天天cao天天干 | 不卡av在线 | 亚洲一级免费观看 | 一区二区视频电影在线观看 | 国产精品久久久久永久免费观看 | 在线黄色国产电影 | 久久99国产视频 | 毛片1000部免费看 | 欧美日韩免费在线视频 | 国产成人综合在线观看 | 久久精品久久精品久久精品 | 精品99在线观看 | 中国一级特黄毛片大片久久 | 亚洲美女精品区人人人人 | 国产一级片在线播放 | 免费观看的黄色 | 国产一区二区高清 | 国产精品久久久网站 | 欧美日本三级 | 97热久久免费频精品99 | 欧美一级片播放 | 国产一区二区三区免费在线 | 五月激情电影 | 亚洲特级毛片 | 一级黄色片在线观看 | 日韩精品一区二区三区在线播放 | 免费国产一区二区视频 | 97国产电影 | 精品视频不卡 | 日韩特级毛片 | 久久激情视频网 | 日韩视频免费 | 色香蕉网 | 天天爱天天干天天爽 | 国产一级视屏 | 超碰在线人人97 | 手机色在线 | 成人欧美日韩国产 | 丁香色婷婷 | 国产欧美精品在线观看 | 超碰成人免费电影 | 狠狠色丁香久久婷婷综合_中 | 色噜噜在线观看 | 欧美日本高清视频 | 麻豆视传媒官网免费观看 | 中文字幕日本电影 | 久久国产电影 | 五月天精品视频 | 99欧美视频 | av网站免费线看精品 | 日韩精品在线观看视频 | 97日日碰人人模人人澡分享吧 | 欧美精品在线视频观看 | 91av在线视频免费观看 | 免费看黄在线观看 | 91精品视频免费看 | 中文免费观看 | 2019av在线视频 | 91完整视频 | 欧美另类重口 | 国产一区在线视频播放 | 欧美综合在线视频 | 久久久久国产精品免费 | 亚洲作爱视频 | 日韩av片在线 | 国产精品美女久久久久久网站 | 在线精品亚洲一区二区 | 伊人电影在线观看 | 色婷婷综合久久久中文字幕 | 亚洲精品女人 | 久久最新网址 | 91视视频在线直接观看在线看网页在线看 | 成年人在线电影 | 久久精品系列 | av黄色在线观看 | 欧美在线1 | 欧美,日韩| 四虎国产精 |