精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Golang GinWeb框架7-靜態(tài)文件/模板渲染

開發(fā) 前端
本文接著上文(Golang GinWeb框架6-綁定請(qǐng)求字符串/URI/請(qǐng)求頭/復(fù)選框/表單類型)繼續(xù)探索GinWeb框架

[[355468]]

 簡(jiǎn)介

本文接著上文(Golang GinWeb框架6-綁定請(qǐng)求字符串/URI/請(qǐng)求頭/復(fù)選框/表單類型)繼續(xù)探索GinWeb框架

靜態(tài)文件服務(wù)

  1. package main 
  2.  
  3. import ( 
  4.   "github.com/gin-gonic/gin" 
  5.   "log" 
  6.   "net/http" 
  7.   "os" 
  8.  
  9. func main() { 
  10.   router := gin.Default() 
  11.   cwd, _ := os.Getwd()  //獲取當(dāng)前文件目錄 
  12.   log.Printf("當(dāng)前項(xiàng)目路徑:%s", cwd) 
  13.   router.Static("/static", cwd) //提供靜態(tài)文件服務(wù)器, 第一個(gè)參數(shù)為相對(duì)路徑,第二個(gè)參數(shù)為根路徑, 這個(gè)路徑一般放置css,js,fonts等靜態(tài)文件,前端html中采用/static/js/xxx或/static/css/xxx等相對(duì)路徑的方式引用 
  14.   router.StaticFS("/more_static", http.Dir("./")) //將本地文件樹結(jié)構(gòu)映射到前端, 通過瀏覽器可以訪問本地文件系統(tǒng), 模擬訪問:http://localhost:8080/more_static 
  15.   router.StaticFile("/logo.png""./resources/logo.png")  //StaticFile提供單靜態(tài)單文件服務(wù), 模擬訪問:http://localhost:8080/log.png 
  16.  
  17.   // Listen and serve on 0.0.0.0:8080 
  18.   router.Run(":8080"

返回文件數(shù)據(jù)

  1. package main 
  2.  
  3. import ( 
  4.   "github.com/gin-contrib/cors" 
  5.   "github.com/gin-gonic/gin" 
  6.   "net/http" 
  7.  
  8. func main() { 
  9.   router := gin.Default() 
  10.   router.Use(cors.Default()) 
  11.  
  12.   router.GET("/local/file", func(c *gin.Context) { 
  13.     c.File("./main.go"
  14.   }) 
  15.  
  16.  
  17.   // A FileSystem implements access to a collection of named files. 
  18.   // The elements in a file path are separated by slash ('/', U+002F) 
  19.   // characters, regardless of host operating system convention. 
  20.   // FileSystem接口, 要求實(shí)現(xiàn)文件的訪問的方法, 提供文件訪問服務(wù)根路徑的HTTP處理器 
  21.   var fs http.FileSystem = http.Dir("./")  //將本地目錄作為文件服務(wù)根路徑 
  22.   router.GET("/fs/file", func(c *gin.Context) { 
  23.     c.FileFromFS("main.go", fs)  //將文件服務(wù)系統(tǒng)下的文件數(shù)據(jù)返回 
  24.   }) 
  25.   router.Run(":8080"
  26. /* 
  27. 模擬訪問文件數(shù)據(jù): 
  28. curl http://localhost:8080/local/file 
  29.  
  30. 模擬訪問文件系統(tǒng)下的文件數(shù)據(jù): 
  31. curl http://localhost:8080/fs/file 
  32. */ 

用文件讀出器提供文件數(shù)據(jù)服務(wù)

  1. package main 
  2.  
  3. import ( 
  4.   "github.com/gin-gonic/gin" 
  5.   "net/http" 
  6.  
  7. func main() { 
  8.   router := gin.Default() 
  9.   router.GET("/someDataFromReader", func(c *gin.Context) { 
  10.     response, err := http.Get("https://raw.githubusercontent.com/gin-gonic/logo/master/color.png"
  11.     if err != nil || response.StatusCode != http.StatusOK {  //請(qǐng)求鏈接中的文件出現(xiàn)錯(cuò)誤時(shí), 直接返回服務(wù)不可用 
  12.       c.Status(http.StatusServiceUnavailable) 
  13.       return 
  14.     } 
  15.  
  16.     reader := response.Body  //用響應(yīng)體內(nèi)容構(gòu)造一個(gè)文件讀出器 
  17.     defer reader.Close() 
  18.     contentLength := response.ContentLength 
  19.     contentType := response.Header.Get("Content-Type"
  20.  
  21.     extraHeaders := map[string]string{ 
  22.       "Content-Disposition": `attachment; filename="gopher.png"`, 
  23.     } 
  24.     // DataFromReader writes the specified reader into the body stream and updates the HTTP code. 
  25.     // func (c *Context) DataFromReader(code int, contentLength int64, contentType string, reader io.Reader, extraHeaders map[string]string) {} 
  26.     // DataFromReader方法將指定的讀出器reader中的內(nèi)容, 寫入http響應(yīng)體流中, 并更新響應(yīng)碼, 響應(yīng)頭信息等 
  27.     c.DataFromReader(http.StatusOK, contentLength, contentType, reader, extraHeaders) 
  28.   }) 
  29.   router.Run(":8080"
  30. /* 
  31. 模擬訪問: 
  32. curl http://localhost:8080/someDataFromReader 
  33. */ 

HTML渲染

使用LoadHTMLGlob()方法或LoadHTMLFiles()方法

  1. package main 
  2.  
  3. import ( 
  4.   "github.com/gin-gonic/gin" 
  5.   "net/http" 
  6.  
  7. func main() { 
  8.   router := gin.Default() 
  9.   //LoadHTMLGlob方法以glob模式加載匹配的HTML文件, 并與HTML渲染器結(jié)合 
  10.   router.LoadHTMLGlob("templates/*"
  11.   //router.LoadHTMLFiles("templates/template1.html""templates/template2.html"
  12.   router.GET("/index", func(c *gin.Context) { 
  13.     //HTML方法設(shè)置響應(yīng)碼, 模板文件名, 渲染替換模板中的值, 設(shè)置響應(yīng)內(nèi)容類型Content-Type "text/html" 
  14.     c.HTML(http.StatusOK, "index.tmpl", gin.H{ 
  15.       "title""Main website"
  16.     }) 
  17.   }) 
  18.   router.Run(":8080"
  19. /* 
  20. 模擬測(cè)試: 
  21. curl http://localhost:8080/index 
  22. */ 

增加模板文件, templates/index.tmpl

  1. <html> 
  2.   <h1> 
  3.     {{ .title }} 
  4.   </h1> 
  5. </html> 

 使用不同文件夾下的相同文件名的模板文件

  1. func main() { 
  2.   router := gin.Default() 
  3.   router.LoadHTMLGlob("templates/**/*"
  4.   router.GET("/posts/index", func(c *gin.Context) { 
  5.     c.HTML(http.StatusOK, "posts/index.tmpl", gin.H{ 
  6.       "title""Posts"
  7.     }) 
  8.   }) 
  9.   router.GET("/users/index", func(c *gin.Context) { 
  10.     c.HTML(http.StatusOK, "users/index.tmpl", gin.H{ 
  11.       "title""Users"
  12.     }) 
  13.   }) 
  14.   router.Run(":8080"

posts目錄下添加模板文件, templates/posts/index.tmpl

  1. {{ define "posts/index.tmpl" }} 
  2. <html><h1> 
  3.   {{ .title }} 
  4. </h1> 
  5. <p>Using posts/index.tmpl</p> 
  6. </html> 
  7. {{ end }} 

 users目錄下添加模板文件, templates/users/index.tmpl

  1. {{ define "users/index.tmpl" }} 
  2. <html><h1> 
  3.   {{ .title }} 
  4. </h1> 
  5. <p>Using users/index.tmpl</p> 
  6. </html> 
  7. {{ end }} 

 自定義模板渲染器

你也可以使用你自定義的HTML模板渲染器, 需要自定義模板文件file1, file2等 

  1. package main 
  2.  
  3. import ( 
  4.   "github.com/gin-gonic/gin" 
  5.   "html/template" 
  6.   "net/http" 
  7.  
  8. func main() { 
  9.   router := gin.Default() 
  10.   //template.ParseFiles(文件1,文件2...)創(chuàng)建一個(gè)模板對(duì)象, 然后解析一組模板,使用文件名作為模板的名字 
  11.   // Must方法將模板和錯(cuò)誤進(jìn)行包裹, 返回模板的內(nèi)存地址 一般用于變量初始化,比如:var t = template.Must(template.New("name").Parse("html")) 
  12.   html := template.Must(template.ParseFiles("file1""file2")) 
  13.   router.SetHTMLTemplate(html) //關(guān)聯(lián)模板和HTML渲染器 
  14.  
  15.   router.GET("/index", func(c *gin.Context) { 
  16.     //HTML方法設(shè)置響應(yīng)碼, 模板文件名, 渲染替換模板中的值, 設(shè)置響應(yīng)內(nèi)容類型Content-Type "text/html" 
  17.     c.HTML(http.StatusOK, "file1", gin.H{ 
  18.       "title""Main website"
  19.     }) 
  20.   }) 
  21.   router.Run(":8080"

自定義分隔符

你可以自定義分隔符, 模板中默認(rèn)的分隔符是{{ }}, 我們也可以修改, 比如下面增加一對(duì)中括號(hào)

  1. r := gin.Default() 
  2. r.Delims("{[{""}]}"
  3. r.LoadHTMLGlob("/path/to/templates"

自定義模板方法

詳見 示例代碼.

模板中與后端都定義好模板方法, 模板渲染時(shí)執(zhí)行該方法, 類似過濾器方法, 比如時(shí)間格式化操作

  1. package main 
  2.  
  3. import ( 
  4.   "fmt" 
  5.   "html/template" 
  6.   "net/http" 
  7.   "time" 
  8.  
  9.   "github.com/gin-gonic/gin" 
  10.  
  11. func formatAsDate(t time.Time) string { 
  12.   yearmonthday := t.Date()  //Date方法返回年,月,日 
  13.   return fmt.Sprintf("%d%02d/%02d"yearmonthday)  //格式化時(shí)間 
  14.  
  15. func main() { 
  16.   router := gin.Default() 
  17.   router.Delims("{[{""}]}") //自定義模板中的左右分隔符 
  18.   //SetFuncMap方法用給定的template.FuncMap設(shè)置到Gin引擎上, 后面模板渲染時(shí)會(huì)調(diào)用同名方法 
  19.   //FuncMap是一個(gè)map,鍵名關(guān)聯(lián)方法名, 鍵值關(guān)聯(lián)方法, 每個(gè)方法必須返回一個(gè)值, 或者返回兩個(gè)值,其中第二個(gè)是error類型 
  20.   router.SetFuncMap(template.FuncMap{ 
  21.     "formatAsDate": formatAsDate, 
  22.   }) 
  23.   router.LoadHTMLFiles("./testdata/template/raw.tmpl") //加載單個(gè)模板文件并與HTML渲染器關(guān)聯(lián) 
  24.  
  25.   router.GET("/raw", func(c *gin.Context) { 
  26.     c.HTML(http.StatusOK, "raw.tmpl", gin.H{ 
  27.       "now"time.Date(2017, 07, 01, 0, 0, 0, 0, time.UTC), 
  28.     }) 
  29.   }) 
  30.  
  31.   router.Run(":8080"
  32.  
  33. /* 
  34. 模擬測(cè)試: 
  35. curl http://localhost:8080/raw 
  36. */ 

定義模板文件: raw.tmpl

  1. Date: {[{.now | formatAsDate}]} 

時(shí)間格式化結(jié)果:

  1. Date: 2017/07/01 

多個(gè)模板

Gin默認(rèn)只使用一個(gè)html.Template模板引擎, 也可以參考多模板渲染器使用類似Go1.6的塊級(jí)模板block template功能.

模板相關(guān)詳情請(qǐng)參考官方template包

參考文檔

Gin官方倉(cāng)庫(kù):https://github.com/gin-gonic/gin

 

責(zé)任編輯:姜華 來源: 云原生云
相關(guān)推薦

2020-12-08 12:05:48

Golang GinW框架HTTPS

2020-12-02 11:18:28

Golang GinW

2020-11-23 10:48:39

Golang GinW

2020-11-26 10:08:17

Golang GinW

2020-12-10 10:22:48

GinWeb中間件HTTPS

2020-11-25 09:18:15

Golang GinW

2020-11-27 07:54:53

Golang GinW

2020-11-25 09:10:39

Golang GinW

2023-10-22 20:20:37

FiberGo

2020-09-04 10:14:02

Linux驅(qū)動(dòng)7內(nèi)核

2017-07-25 14:07:14

前端Vue模板渲染

2024-04-02 09:55:36

GolangColly開發(fā)者

2019-10-14 15:34:10

Web 開發(fā)框架

2024-09-04 08:46:38

2021-05-12 08:54:56

FastAP web 框架數(shù)據(jù)庫(kù)操作

2011-05-18 14:07:59

XSL

2024-11-07 11:46:41

2022-01-21 08:21:48

前端vdom渲染

2022-03-30 18:18:33

GolangTiDB數(shù)據(jù)庫(kù)

2024-11-13 11:02:03

微服務(wù)框架項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩三级高清在线| 亚洲午夜一区| 91九色02白丝porn| 一区二区三区四区免费视频| 精品国产伦一区二区三| 亚洲毛片播放| 深夜福利亚洲导航| 精品国产免费久久久久久婷婷| 亚洲啊v在线| 亚洲视频在线一区观看| 精品视频导航| 国产视频一区二区三| 宅男噜噜噜66一区二区| 俺也去精品视频在线观看| 亚洲精品女人久久久| 少妇高潮一区二区三区99| 精品久久中文字幕久久av| 在线免费观看成人网| 亚洲欧美一区二区三| 国产一区二区三区av电影| 国产mv免费观看入口亚洲| 久久在线视频精品| 98精品久久久久久久| 亚洲精品视频播放| 欧美久久久久久久久久久| 韩国理伦片久久电影网| 日韩欧美国产中文字幕| 天天做天天躁天天躁| 婷婷在线视频观看| 久久久综合精品| 好吊妞www.84com只有这里才有精品 | 欧美大片在线看免费观看| 人妻视频一区二区| 亚州av日韩av| 亚洲精品国产福利| 亚洲视频在线免费观看| 91影视免费在线观看| 免费又黄又爽又猛大片午夜| 亚洲人成免费| 久久久久久久久久国产| 蜜臀久久精品久久久用户群体| 成人免费在线播放| 国产亚洲激情视频在线| 麻豆av免费观看| 日韩欧美中文字幕电影| 欧美精品一区二区高清在线观看| 亚洲精品无码久久久久久久| 国产精品色婷婷在线观看| 欧美日韩在线播放一区| 天天干天天综合| 国产91精品在线| 欧美日韩综合不卡| 久久这里只精品| 久久亚洲国产精品尤物| 91成人免费在线| 天天爽天天爽夜夜爽| 欧美日韩视频免费观看| 欧美亚洲一区三区| 亚洲精品自拍网| 亚洲人成网站在线在线观看| 欧美精品在线观看一区二区| 超碰人人草人人| 精品中文字幕一区二区三区四区 | 肉色超薄丝袜脚交| 久久av网站| 精品成人私密视频| 给我看免费高清在线观看| 亚洲综合图色| 中文字幕久久久| 99鲁鲁精品一区二区三区| 亚洲乱码免费伦视频| 欧美国产高跟鞋裸体秀xxxhd| www.天天色| 天堂成人国产精品一区| 国产精品偷伦免费视频观看的| 亚洲在线视频播放| 国产乱淫av一区二区三区| 国产精品9999久久久久仙踪林 | 久久蜜臀中文字幕| 在线视频亚洲自拍| 欧美hdxxxxx| 欧美午夜电影在线| www.超碰97.com| 中文字幕日韩高清在线| 亚洲精品在线看| 国产3级在线观看| 国产精品s色| 日本不卡高字幕在线2019| 一本色道久久综合亚洲| 成人三级伦理片| 日韩激情视频| 性欧美videos高清hd4k| 色婷婷综合久久久久中文| 中文字幕一区二区在线观看视频| 哺乳一区二区三区中文视频| 亚洲日韩中文字幕| 国模无码国产精品视频| 国产亚洲在线观看| 91精品在线影院| 青青久在线视频| 亚洲欧美激情插| 91淫黄看大片| caoporn成人| 中文字幕亚洲在线| 在线观看黄网站| 国产精品夜夜嗨| 亚洲人久久久| 色戒汤唯在线| 日韩视频一区二区三区在线播放 | 午夜日韩在线观看| 国内外成人免费在线视频| 狼人精品一区二区三区在线| 国产一区二区三区在线免费观看| 国产主播在线播放| 久久99久久精品| 麻豆成人在线播放| 女人黄色免费在线观看| 欧美群妇大交群中文字幕| 深爱五月激情网| 在线成人欧美| 亚洲在线观看视频| 五月香视频在线观看| 色婷婷综合久久久久中文| 中文字幕在线播放视频| 欧美视频日韩| 国产一区视频在线播放| 国产大片在线免费观看| 狠狠操狠狠色综合网| 精品伦一区二区三区| 亚洲精品小说| 成人久久久久爱| 在线观看av的网站| 欧洲亚洲精品在线| 国产三级av在线播放| 亚洲综合精品四区| 精品视频在线观看| 精精国产xxxx视频在线野外| 精品裸体舞一区二区三区| 国产大片免费看| 国产一区二区看久久| 国产系列第一页| 亚洲欧美专区| 欧美成年人网站| 99久久99久久久精品棕色圆| 亚洲日本中文字幕区| 污污网站在线观看视频| 欧美电影免费| 92看片淫黄大片欧美看国产片| 麻豆网站在线看| 日韩一区二区三免费高清| 全网免费在线播放视频入口| 国产精品一区在线| 欧美视频在线第一页| 天堂va在线高清一区| 欧美日韩第一视频| 三级在线观看网站| 欧美日韩国产精品一区二区三区四区 | 欧美亚洲大片| 日韩中文在线中文网在线观看| 亚洲综合精品视频| 亚洲欧美日韩中文播放| 亚洲免费观看在线| 99精品视频免费观看视频| 久久久7777| 亚洲不卡系列| 久久久精品2019中文字幕神马| 精品国产亚洲AV| 亚洲国产精品一区二区www在线| 国产chinese中国hdxxxx| 国产精品一级| 亚洲精品一区二区三区蜜桃久| 亚洲综合视频| 97精品久久久| 成人免费视频| 欧美xxxx老人做受| 综合激情网五月| 国产精品久久久久桃色tv| 中文字幕第10页| 亚洲综合国产| 亚洲av首页在线| 日本国产精品| 国产日韩在线观看av| 国产精品偷拍| 影音先锋欧美精品| 不卡视频免费在线观看| 欧美视频专区一二在线观看| 视频国产一区二区| 99re热视频这里只精品| 中文字幕永久有效| 亚洲激情另类| 宅男在线精品国产免费观看| 韩国女主播一区二区三区| 国产精品欧美亚洲777777| 国内小视频在线看| 在线播放国产一区中文字幕剧情欧美| 精品国产无码一区二区| 欧美在线色视频| 精品午夜福利视频| 国产精品久久久久久久午夜片| 久久久久久久人妻无码中文字幕爆| 久久在线精品| 欧美人成在线观看| 欧美国产美女| 久久婷婷开心| 8x国产一区二区三区精品推荐| 国产精品99一区| 精精国产xxxx视频在线野外| 精品少妇v888av| 第一页在线观看| 日韩久久精品电影| 亚洲精品国产suv一区| 欧美日韩高清一区二区不卡 | av中文字幕在线观看| 国产一区二区三区毛片| 色噜噜在线播放| 日韩欧美电影在线| 97免费观看视频| 在线观看av不卡| 日本中文字幕第一页| 亚洲第一福利一区| 久久久久成人精品无码| 亚洲欧洲另类国产综合| 91麻豆精品国产91久久综合| 91热门视频在线观看| 国模无码视频一区| 国产精品99久久久久久久女警| 色乱码一区二区三区在线| 日韩二区三区四区| 欧美精品色婷婷五月综合| 在线观看日韩av电影| 成人小视频在线观看免费| 国产精品久久久久蜜臀| 亚洲综合欧美日韩| jlzzjlzz亚洲女人| 日韩欧美视频一区二区| 亚洲精品推荐| 欧美久久久久久一卡四| 亚洲精华一区二区三区| 蜜桃传媒视频麻豆第一区免费观看 | 亚洲国产精品成人精品| 六月丁香综合网| 亚洲成在人线av| 凸凹人妻人人澡人人添| 日韩av网站在线| 污污视频在线免费看| 亚洲男人7777| 每日更新在线观看av| 亚洲无亚洲人成网站77777| 六十路在线观看| 中文字幕av一区二区| 亚洲成a人v欧美综合天堂麻豆| 日韩中文字幕不卡视频| 超碰在线免费播放| 欧美黄色性视频| 日韩av一卡| 国产精品jvid在线观看蜜臀| 国产亚洲人成a在线v网站| 国产视频福利一区| 国内不卡的一区二区三区中文字幕| 91视频国产一区| 国产精品久久久久久久久久白浆| 精品国产乱码一区二区三区四区| 亚洲电影男人天堂| 亚洲日本精品国产第一区| 91精品亚洲| 波多野结衣之无限发射| 免费永久网站黄欧美| www欧美激情| 国产精品香蕉一区二区三区| 日本国产在线视频| 久久九九久久九九| 韩国一级黄色录像| 亚洲va天堂va国产va久| 999视频在线| 欧美一级欧美三级在线观看| 少妇喷水在线观看| 中文字幕亚洲一区在线观看| 在线āv视频| 青青草原成人在线视频| 亚洲午夜国产成人| 精品一区二区久久久久久久网站| 欧美日韩激情| 国产91在线亚洲| 性色一区二区三区| 天美一区二区三区| 久久综合丝袜日本网| 欧美特黄一级片| 欧美日韩在线看| 国产日本精品视频| 亚洲精品91美女久久久久久久| 国产视频二区在线观看| 欧美理论片在线观看| 国产超碰精品| 国产精品日韩欧美一区二区| 日韩国产一区二区三区| 成人午夜视频在线观看免费| 青青草原综合久久大伊人精品优势| 妖精视频在线观看| 欧美极品aⅴ影院| 日本少妇bbwbbw精品| 欧美卡1卡2卡| 国家队第一季免费高清在线观看| 久久99精品视频一区97| 国产黄色精品| 欧美久久在线| 亚洲伦伦在线| 欧美一区二区三区影院| 国产人妖乱国产精品人妖| 国产无码精品久久久| 欧美久久久久免费| 黄网站在线观看| 久久久最新网址| 久久伊人久久| 亚洲制服欧美久久| 日韩精品色哟哟| 久久中文字幕人妻| 亚洲午夜久久久久| 国产精品特级毛片一区二区三区| 国产亚洲精品综合一区91| 国产免费拔擦拔擦8x在线播放| 亚洲iv一区二区三区| 久久福利影院| 男女男精品视频站| 国产色一区二区| 性无码专区无码| 日韩电影网在线| 2021天堂中文幕一二区在线观| 亚洲综合在线做性| 亚洲mv大片欧洲mv大片| 日本中文字幕二区| 国产精品女上位| 在线视频 中文字幕| 亚洲天堂第一页| 三上悠亚一区二区| 日本精品一区二区| 久久一日本道色综合久久| 精品人妻少妇嫩草av无码| 精品国产乱码久久久久久天美| 成人免费视频国产免费麻豆| 欧美激情在线有限公司| julia中文字幕一区二区99在线| 最新国产精品久久| 国产一区二区免费看| 久久久精品视频免费观看| 日韩欧美一级二级三级| 欧美黑人xx片| 国产一区二区三区黄| 中日韩男男gay无套| 久久午夜夜伦鲁鲁片| 黄色精品在线看| 日本大臀精品| 国产精品久久久久久久av电影| 国产一区二区亚洲| 日日噜噜噜噜久久久精品毛片| 日本一区二区成人| 97精品人妻一区二区三区| 九九热这里只有精品免费看| 国产精品乱战久久久| 日日橹狠狠爱欧美超碰| 久久精品亚洲精品国产欧美| 这里只有精品免费视频| 日韩中文字幕欧美| 538任你躁精品视频网免费| 日韩视频在线视频| 久久精品亚洲一区二区三区浴池| 在线观看亚洲黄色| 欧美精品在线免费| 久久久久观看| 91国产精品视频在线观看| 亚洲日本在线看| 色综合久久网女同蕾丝边| 国产精品香蕉av| 国产精品videossex久久发布| 国内精品久久99人妻无码| 欧美人妖巨大在线| 免费毛片在线看片免费丝瓜视频| 国产综合18久久久久久| 免费观看一级特黄欧美大片| 极品久久久久久| 日韩精品久久久久| 欧洲精品久久久久毛片完整版| 欧美a级免费视频| 久久夜色精品一区| 国产手机视频在线| 欧洲一区二区视频| 亚洲深深色噜噜狠狠爱网站| 国产乱了高清露脸对白| 欧美女孩性生活视频| 福利影院在线看| 国产精品h视频| 久久久精品综合| 国产夫妻自拍av| 国产精品99导航| 亚洲精品孕妇| 日韩精品一区二区亚洲av性色 | 99免在线观看免费视频高清| 999热视频在线观看| 日本大胆欧美人术艺术动态| 国产精品.www| 久久久精品电影|