精品欧美一区二区三区在线观看 _久久久久国色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)

成年人深夜视频| 国内外成人免费激情在线视频| 99免费视频观看| 色的视频在线免费看| 国产在线精品一区二区三区不卡| 欧美日韩高清在线观看| 国产精品揄拍100视频| 九七电影院97理论片久久tvb| 亚洲欧美日韩国产成人精品影院 | 国产极品久久久久久久久波多结野 | 精品久久香蕉国产线看观看亚洲| 丝袜足脚交91精品| 亚洲国产精品久久久久爰性色| 久久高清国产| 欧美乱大交xxxxx| 日韩丰满少妇无码内射| 97视频一区| 精品视频资源站| 欧美深夜福利视频| www免费视频观看在线| 国产午夜久久久久| 好看的日韩精品视频在线| 91好色先生tv| 天堂蜜桃一区二区三区| 色综合久久精品亚洲国产| 中文字幕伦理片| 欧美尿孔扩张虐视频| 欧美一区二区国产| 中文字幕国产免费| 欧美男体视频| 欧美日韩国产一区在线| 久久久久久久久网| 国产一二区在线| 国产精品久久久久久久久免费相片| 精品免费日产一区一区三区免费| 国产成人精品a视频| 久久精品久久综合| 国产精品久久久久久久久| 日韩av在线播| 激情国产一区| 欧美黑人国产人伦爽爽爽| 欧美性猛交xxxx乱大交少妇| 九九综合在线| 亚洲欧美成人一区二区在线电影| 国产视频精品视频| 综合视频一区| 日韩欧美亚洲国产另类| 一级黄色高清视频| 亚洲图片小说区| 欧美日韩精品久久久| www日韩在线观看| 亚洲第一影院| 在线观看成人免费视频| 青青青在线视频免费观看| 欧美xxxxxx| 91久久国产最好的精华液| 成年人免费大片| 3d性欧美动漫精品xxxx软件| 色综合久久中文字幕| 97av视频在线观看| 成人福利av| 91九色最新地址| 香港日本韩国三级网站| 欧美极品在线| 日韩一区二区三区免费观看| 一区二区三区四区影院| av动漫精品一区二区| 亚洲国产精品999| 亚洲AV无码国产精品| 亚洲欧美校园春色| 视频在线观看99| 卡通动漫亚洲综合| 韩国久久久久| 欧美亚洲视频在线看网址| 日本视频免费观看| 久久国产剧场电影| 99在线热播| 青青青草原在线| 中文成人综合网| 黄色录像特级片| 3344国产永久在线观看视频| 日韩欧美极品在线观看| 亚洲欧美视频二区| 日韩欧美另类中文字幕| 亚洲国产精品美女| 正在播放国产对白害羞| 亚洲欧美亚洲| 欧亚精品中文字幕| 一区二区国产欧美| 成人18视频在线播放| 日本成人三级| 成人在线免费看片| 午夜av一区二区三区| 午夜免费高清视频| 国产成人澳门| 在线亚洲国产精品网| 好吊色视频在线观看| 男人的天堂亚洲在线| 91精品在线一区| 视频污在线观看| 国产精品福利在线播放| 妞干网在线视频观看| 久久69成人| 亚洲福利视频免费观看| 欧美日韩国产一二三区| 99香蕉国产精品偷在线观看 | 99热精品在线播放| 久久久精品免费免费| 国产手机视频在线观看| 成人欧美magnet| 欧美电影免费观看完整版 | 亚洲蜜臀av乱码久久精品蜜桃| av黄色在线网站| 日本久久伊人| 自拍偷拍亚洲精品| wwwwww国产| 国产91丝袜在线播放0| 亚洲欧洲一区二区在线观看| 日韩精品极品| 精品999在线播放| 久草视频手机在线| 免费视频一区二区| 欧美日韩一区二区三| 欧美1234区| 制服丝袜亚洲色图| 国产视频三区四区| 亚洲在线视频| 国产欧美日韩一区二区三区| 成人免费看片| 欧美另类z0zxhd电影| 少妇人妻好深好紧精品无码| 亚洲一区国产一区| 国产精品区免费视频| 91在线中字| 91精品国产综合久久福利软件 | 99久久.com| 国产女同一区二区| 成人jjav| 在线视频欧美精品| 一区二区精品免费| 翔田千里一区二区| 蜜桃精品久久久久久久免费影院| 白浆视频在线观看| 亚洲国产精品电影| 国产成人亚洲欧洲在线| www.亚洲免费av| 国产高清av在线播放| 97青娱国产盛宴精品视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 91亚洲国产成人久久精品麻豆 | 国产性xxxx高清| av不卡免费电影| 欧美一区二区三区爽大粗免费| 国产乱人伦精品一区| 国语自产精品视频在线看抢先版图片| 老熟妇高潮一区二区高清视频| 亚洲一区二区精品视频| 美女露出粉嫩尿囗让男人桶| 亚洲小说区图片区| 久久国产精品精品国产色婷婷| 欧美aa在线观看| 亚洲免费成人av电影| www.欧美色| 国产欧美一区二区三区鸳鸯浴 | 福利电影一区二区| 无码中文字幕色专区| 在线看成人短视频| 国产精品欧美激情在线播放| 日本在线看片免费人成视1000| 欧美精品黑人性xxxx| 国产黄在线免费观看| 成人h动漫精品一区二区| 欧美a v在线播放| 国内黄色精品| 91免费在线视频| 17videosex性欧美| 国产亚洲精品久久久久久牛牛| 中文字幕免费高清在线观看| 亚洲丝袜制服诱惑| 午夜不卡久久精品无码免费| 久久精品一区二区三区中文字幕| 神马欧美一区二区| 日韩在线精品强乱中文字幕| 日本精品久久电影| 五月婷婷在线观看| 精品剧情v国产在线观看在线| 亚洲婷婷综合网| 亚洲欧洲精品一区二区精品久久久| 亚洲少妇中文字幕| 天堂av在线一区| 久久精品在线免费视频| 色婷婷狠狠五月综合天色拍 | 久久9精品区-无套内射无码| 99国产精品一区二区| 国产精选一区二区| 懂色aⅴ精品一区二区三区| 蜜臀久久99精品久久久无需会员 | 日本成人精品在线| av片在线观看网站| 亚洲欧美国产另类| www.国产黄色| 欧美揉bbbbb揉bbbbb| 91蜜桃视频在线观看| 中文字幕在线一区| 成人无码www在线看免费| 精品综合免费视频观看| 国产美女无遮挡网站| 91av精品| 亚洲二区三区四区| 秋霞影院一区二区三区| 成人伊人精品色xxxx视频| 亚洲国产欧美日本视频| 九九久久久久久久久激情| 国产黄色免费在线观看| 亚洲丁香婷深爱综合| 99久久免费国产精精品| 欧美亚洲丝袜传媒另类| 久久久久亚洲av成人毛片韩| 一区二区三区在线免费视频| 久久久久99精品成人| 91亚洲午夜精品久久久久久| 26uuu国产| 韩国成人在线视频| 久久婷婷综合色| 久久久久国内| 国产亚洲欧美在线视频| 亚洲精选91| 91亚洲精品国产| 一区二区三区网站| 在线观看一区欧美| 成人影院在线| 欧美综合激情| 久久97久久97精品免视看秋霞| 91国产在线播放| 成人亚洲精品| 91久久在线观看| 91精品国产自产观看在线 | 91极品身材尤物theporn| 色乱码一区二区三区88| 国产剧情在线视频| 色av成人天堂桃色av| 日本高清不卡码| 欧美视频中文在线看| 美日韩一二三区| 欧美日韩免费一区| 日韩av大片在线观看| 精品久久在线播放| 日韩黄色一级视频| 欧美综合在线视频| 亚洲一区 中文字幕| 欧美日韩日本视频| 91国产免费视频| 欧美一区二区三区日韩视频| www.五月激情| 亚洲二区中文字幕| 精品美女视频在线观看免费软件 | 国内激情视频在线观看| 国模私拍视频一区| 是的av在线| 国产精品va在线播放| av成人在线看| 91最新在线免费观看| 中文字幕日韩在线| 精品亚洲欧美日韩| 日韩dvd碟片| 男人天堂网站在线| 亚洲精选一区| 日韩在线第三页| 久久国产生活片100| 中文字幕第10页| 99天天综合性| 国产三级在线观看完整版| 亚洲桃色在线一区| 国产成人精品一区二三区| 欧美在线短视频| 国产草草影院ccyycom| 日韩国产在线看| 99re在线视频| 欧美国产亚洲视频| 欧美人体一区二区三区| 成人亚洲激情网| 欧美91在线| 中文字幕在线观看一区二区三区| 中文字幕午夜精品一区二区三区| 成人午夜免费在线| 日韩av中文在线观看| 日本美女视频一区| 99免费精品视频| 九九热久久免费视频| 午夜精品福利在线| 中文字幕av网站| 日韩欧美视频在线| 国产精品久久久久久久龚玥菲| 精品国产自在精品国产浪潮| 国精一区二区三区| 国产欧美va欧美va香蕉在| 久久黄色影视| 成年人三级视频| 日韩和欧美的一区| 人妻 丝袜美腿 中文字幕| 国产欧美日韩亚州综合| 久久免费视频6| 欧美三级资源在线| 天堂av在线播放| 欧美成人中文字幕在线| 日韩欧美一区二区三区在线观看 | 久久免费精品视频在这里| 免费看国产一级片| 国产在线不卡视频| 青娱乐国产视频| 婷婷一区二区三区| 国产精品高潮呻吟久久久| 亚洲女人被黑人巨大进入al| 在线免费观看污| 国产精品嫩草影院一区二区| 午夜a一级毛片亚洲欧洲| 激情六月天婷婷| 久久99久久精品| 免费看黄色三级| 欧美日韩在线视频观看| 亚洲精品久久久久久动漫器材一区| 色偷偷888欧美精品久久久| 亚洲欧美韩国| 精品999在线观看| 影音先锋久久精品| 成人高清在线观看视频| 中文字幕亚洲综合久久菠萝蜜| 亚洲精品一区二三区| 亚洲欧美综合v| 三妻四妾的电影电视剧在线观看| 国产chinese精品一区二区| 欧美一区不卡| 成人性生交视频免费观看| 国产精品免费观看视频| 五月天中文字幕| 夜夜嗨av一区二区三区四区 | 黄色精品一区| 可以看的av网址| 亚洲另类在线一区| va婷婷在线免费观看| 另类专区欧美制服同性| 99久久久国产| 自拍偷拍亚洲色图欧美| 精品一区二区在线观看| 777777国产7777777| 欧美亚洲动漫另类| 午夜久久久久久久久久影院| 亚洲乱码中文字幕综合| 91国内精品视频| 色噜噜狠狠色综合网图区| 日韩制服一区| 日韩区国产区| 美女国产一区二区三区| 91视频免费看片| 欧美日韩一区国产| 日韩在线免费电影| 成人欧美一区二区三区黑人| 亚洲精品久久| 最新国产精品自拍| 午夜天堂影视香蕉久久| 涩涩视频在线观看免费| 国产精品 欧美在线| 日本一区二区在线看| 国产精品嫩草影院8vv8| 亚洲精品成人悠悠色影视| 黄色一级大片在线免费看国产| 国语自产精品视频在线看| 西野翔中文久久精品字幕| 日韩一级片播放| 欧美国产一区二区| 国产免费久久久| 亚州国产精品久久久| 九九久久精品| 小早川怜子一区二区三区| 亚洲最色的网站| 欧美女子与性| 国产日韩中文字幕在线| 欧美先锋影音| 国产激情在线免费观看| 欧美日韩精品一区二区三区四区 | 国内精品模特av私拍在线观看| 亚洲宅男一区| 超碰在线免费av| 欧美日韩国内自拍| 欧美一级二级三级区| 国内视频一区| 奇米色一区二区| 精品处破女学生| 中文字幕成人在线| 97久久综合精品久久久综合| 一区二区三区免费播放| 亚洲一区在线观看视频| 理论在线观看| 99porn视频在线| 琪琪一区二区三区| 中文在线观看免费网站| 最近2019年中文视频免费在线观看| 91成人短视频| 中文字幕在线综合| 欧美日韩国产精品|