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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[Go] Template 使用简介

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

Golang 提供了兩個標準庫用來處理模板?text/template?和?html/template。我們使用?html/template?格式化 html 字符。

模板引擎

模板引擎很多,Python 的 jinja,nodejs 的 jade 等都很好。所謂模板引擎,則將模板和數據進行渲染的輸出格式化后的字符程序。對于 Go,執行這個流程大概需要三步。

  • 創建模板對象
  • 加載模板字串
  • 執行渲染模板
  • 其中最后一步就是把加載的字符和數據進行格式化。其過程可以總結下圖:

    warming up

    Go 提供的標準庫?html/template?提供了很多處理模板的接口。我們的項目結構為:

    ├── main.go └── templates├── index.html└── layout.html

    templates 文件夾有兩個文件,分別為模板文件。?layout.html 文件如下:

    <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: {{ . }}</body> </html>

    我們可以使用 ParseFiles 方法加載模板,該方法會返回一個模板對象和錯誤,接下來就可以使用模板對象執行模板,注入數據對象。Go 的提供了一些模板標簽,稱之為?action,. 也是一種 action,更多的action 稍后解釋。

    func templateHandler(w http.ResponseWriter, r *http.Request) {t, _ := template.ParseFiles("templates/layout.html")fmt.Println(t.Name())t.Execute(w, "Hello world") }

    我們打印了 t 模板對象的 Name 方法,實際上,每一個模板,都有一個名字,如果不顯示指定這個名字,Go 將會把文件名(包括擴展名當成名字)本例則是 layout.html。訪問之后可以看見返回的 html 字串:

    $ curl -i http://127.0.0.1:8000/ HTTP/1.1 200 OK Date: Fri, 09 Dec 2016 09:04:36 GMT Content-Length: 223 Content-Type: text/html; charset=utf-8<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: Hello world</body> </html>

    Go 不僅可以解析模板文件,也可以直接解析模板字串,這就是標準的處理,新建 ->?加載 -> 執行 三部曲:

    func templateHandler(w http.ResponseWriter, r *http.Request) {tmpl := `<!DOCTYPE html> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Go Web Programming</title></head><body>{{ . }}</body> </html>`t := template.New("layout.html")t, _ = t.Parse(tmpl)fmt.Println(t.Name())t.Execute(w, "Hello World") }

    實際開發中,最終的頁面很可能是多個模板文件的嵌套結果。Go 的 ParseFiles 也支持加載多個模板文件,不過模板對象的名字則是第一個模板文件的文件名。

    func templateHandler(w http.ResponseWriter, r *http.Request) {t, _ :=template.ParseFiles("templates/layout.html", "templates/index.html")fmt.Println(t.Name())t.Execute(w, "Hello world") }

    可見打印的還是 layout.html 的名字,執行的模板的時候,并沒有 index.html 的模板內容。

    此外,還有 ParseGlob 方法,可以通過 glob 通配符加載模板。

    模板命名與嵌套

    模板命名

    前文已經提及,模板對象是有名字的,可以在創建模板對象的時候顯示命名,也可以讓 Go 自動命名。可是涉及到嵌套模板的時候,該如何命名模板呢,畢竟模板文件有好幾個?

    Go 提供了 ExecuteTemplate 方法,用于執行指定名字的模板。例如加載 layout.html 模板的時候,可以指定 layout.html

    func templateHandler(w http.ResponseWriter, r *http.Request) {t, _ :=template.ParseFiles("templates/layout.html")fmt.Println(t.Name())t.ExecuteTemplate(w, "layout", "Hello world") }

    似乎和 Execute 方法沒有太大的差別。下面修改一下 layout.html 文件:

    {{ define "layout" }}<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: {{ . }}</body> </html>{{ end }}

    在模板文件中,使用了 define 這個 action 給模板文件命名了。雖然我們 ParseFiles 方法返回的模板對象 t 的名字還是 layout.html, 但是 ExecuteTemplate 執行的模板卻是 html 文件中定義的layout。

    不僅可以通過 define 定義模板,還可以通過 template action 引入模板,類似 jinja 的 include 特性。修改 layout.html 和 index.html

    {{ define "layout" }} <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: {{ . }}{{ template "index" }}</body> </html> {{ end }}

    index.html

    {{ define "index" }}<div style="background: yellow">this is index.html </div>{{ end }}

    Go 的代碼也需要修改,使用 ParseFiles 加載需要渲染的模板文件:

    func templateHandler(w http.ResponseWriter, r *http.Request) {t, _ :=template.ParseFiles("templates/layout.html", "templates/index.html")t.ExecuteTemplate(w, "layout", "Hello world") }

    訪問可以看到 index 被 layout 模板 include 了:

    $ curl http://127.0.0.1:8000/<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: Hello world<div style="background: yellow">this is index.html</div></body> </html>

    單文件嵌套

    總而言之,創建模板對象后和加載多個模板文件,執行模板文件的時候需要指定 base 模板(layout),在 base 模板中可以 include 其他命名的模板。無論點 .,define,template 這些花括號包裹的東西都是 Go 的 action(模板標簽)

    Action

    action 是 Go 模板中用于動態執行一些邏輯和展示數據的形式。大致分為下面幾種:

  • 條件語句
  • 迭代
  • 封裝
  • 引用
  • 我們已經見識了 template 引用的用法,下面么再看看其他的用法

    條件判斷

    條件判斷的語法很簡單:

    {{ if arg }}some content {{ end }}{{ if arg }}some content {{ else }}other content {{ end }}

    arg 可以是基本數據結構,也可以是表達式:if-end 包裹的內容為條件為真的時候展示。與 if 語句一樣,模板也可以有 else 語句。

    func templateHandler(w http.ResponseWriter, r *http.Request) {t, _ := template.ParseFiles("templates/layout.html")rand.Seed(time.Now().Unix())t.ExecuteTemplate(w, "layout", rand.Intn(10) > 5) }

    layout.html 文件

    {{ define "layout" }} <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: {{ . }}{{ if . }}Number is greater than 5!{{ else }}Number is 5 or less!{{ end }}</body> </html> {{ end }}

    此時就能看見,當 . 的值為 true 的時候顯示 if 的邏輯,否則顯示 else 的邏輯。

    迭代

    對于一些數組,切片或者是 map,可以使用迭代的 action,與 Go 的迭代類似,使用 range 進行處理:

    func templateHandler(w http.ResponseWriter, r *http.Request) {t := template.Must(template.ParseFiles("templates/layout.html"))daysOfWeek := []string{"Mon", "Tue", "Wed", "Ths", "Fri", "Sat", "Sun"}t.ExecuteTemplate(w, "layout", daysOfWeek) }

    layout.html 文件

    {{ define "layout" }} <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: {{ . }}{{ range . }}<li>{{ . }}</li>{{ end }}</body> </html> {{ end }}

    可以看見輸出了一堆 li 列表。迭代的時候,還可以使用 $ 設置循環變量:

    {{ range $key, $value := . }}<li>key: {{ $key }}, value: {{ $value }}</li> {{ else }}empty {{ end }}

    可以看見和迭代切片很像。range 也可以使用 else 語句:

    func templateHandler(w http.ResponseWriter, r *http.Request) {t := template.Must(template.ParseFiles("templates/layout.html"))daysOfWeek := []string{}t.ExecuteTemplate(w, "layout", daysOfWeek) }

    layout.html 部分內容

    {{ range . }}<li>{{ . }}</li> {{ else }}empty {{ end }}

    當 range 的結構為空的時候,則會執行 else 分支的邏輯。

    with封裝

    with 語言在 Python 中可以開啟一個上下文環境。對于 Go 模板,with 語句類似,其含義就是創建一個封閉的作用域,在其范圍內,可以使用 . action,而與外面的 . 無關,只與 with 的參數有關:

    {{ with arg }}
    ??? 此時的點 . 就是arg
    {{ end }}

    {{ define "layout" }} <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: {{ . }}{{ with "world"}}Now the dot is set to {{ . }}{{ end }}</body> </html> {{ end }}

    訪問結果如下:

    $ curl http://127.0.0.1:8000/<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: [Mon Tue Wed Ths Fri Sat Sun]Now the dot is set to world</body> </html>

    可見 with 語句的 . 與其外面的 . 是兩個不相關的對象。with 語句也可以有 else。else 中的 . 則和 with 外面的 . 一樣,畢竟只有 with 語句內才有封閉的上下文:

    {{ with ""}}Now the dot is set to {{ . }} {{ else }}{{ . }} {{ end }}

    訪問效果為:

    $ curl http://127.0.0.1:8000/<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>template data: [Mon Tue Wed Ths Fri Sat Sun][Mon Tue Wed Ths Fri Sat Sun]</body> </html>

    引用

    我們已經介紹了模板嵌套引用的技巧。引用除了模板的 include,還包括參數的傳遞。

    func templateHandler(w http.ResponseWriter, r *http.Request) {t := template.Must(template.ParseFiles("templates/layout.html", "templates/index.html"))daysOfWeek := []string{"Mon", "Tue", "Wed", "Ths", "Fri", "Sat", "Sun"}t.ExecuteTemplate(w, "layout", daysOfWeek) }

    修改 layout.html, layout 中引用了 index 模板:

    {{ define "layout" }} <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>layout template data: ({{ . }}){{ template "index" }}</body> </html> {{ end }}

    index.html模板的內容也打印了?.:

    {{ define "index" }}<div style="background: yellow">this is index.html ({{ . }}) </div>{{ end }}

    訪問的效果如下,index.html 中的點并沒有數據。

    $ curl http://127.0.0.1:8000/<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>layout template data: ([Mon Tue Wed Ths Fri Sat Sun])<div style="background: yellow">this is index.html () </div></body> </html>

    我們可以修改引用語句 {{ template "index" . }},把參數傳給子模板,再次訪問,就能看見 index.html 模板也有數據啦。

    <div style="background: yellow">this is index.html ([Mon Tue Wed Ths Fri Sat Sun]) </div>

    參數,變量和管道

    模板的參數可以是go中的基本數據類型,如字串,數字,布爾值,數組切片或者一個結構體。在模板中設置變量可以使用?$variable := value。我們在 range 迭代的過程使用了設置變量的方式。

    Go 還有一個特性就是模板的管道函數,熟悉 django 和 jinja 的開發者應該很熟悉這種手法。通過定義函數過濾器,實現模板的一些簡單格式化處理。并且通過管道哲學,這樣的處理方式可以連成一起。

    {{ p1 | p2 | p3 }}

    例如 模板內置了一些函數,比如格式化輸出:

    {{ 12.3456 | printf "%.2f" }}

    函數

    既然管道符可以成為模板中的過濾器,那么除了內建的函數,能夠自定義函數可以擴展模板的功能。幸好 Go 的模板提供了自定義模板函數的功能。

    想要創建一個定義函數只需要兩步:

  • 創建一個 FuncMap 類型的 map,key 是模板函數的名字,value 是其函數的定義。
  • 將?FuncMap 注入到模板中。
  • func templateHandler(w http.ResponseWriter, r *http.Request) {funcMap := template.FuncMap{"fdate": formDate}t := template.New("layout").Funcs(funcMap)t = template.Must(t.ParseFiles("templates/layout.html", "templates/index.html"))t.ExecuteTemplate(w, "layout", time.Now()) }

    然后在模板中使用 {{ . | fdate }},當然也可以不適用管道過濾器,而是使用正常的函數調用形式,{{ fdate . }} 。

    注意,函數的注入,必須要在 parseFiles 之前,因為解析模板的時候,需要先把函數編譯注入。

    智能上下文

    上面所介紹的特性,基本上是大多數模板引擎都具有的功能。Go 還提供了一個更有意思的特性。那就是根據上下文顯示模板的內容。例如字符的轉義,會根據所顯示的上下文環境而智能變化。比如同樣的 html 標簽,在 Js 和 html 環境中,其轉義的內容是不一樣的:

    func templateHandler(w http.ResponseWriter, r *http.Request) {t, _ := template.ParseFiles("templates/layout.html")content := `I asked: <i>What's up?</i>`t.ExecuteTemplate(w, "layout", content) }

    模板文件:

    {{ define "layout" }} <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>layout</title></head><body><h3>This is layout</h3>layout template data: ({{ . }})<div><a href="/{{ . }}">Path</a></div><div><a href="/?q={{ . }}">Query</a></div><div><a οnclick="f('{{ . }}')">Onclick</a></div></body> </html> {{ end }}

    訪問結果

    layout template data: (I asked: <i>What's up?</i>)<div><a href="/I%20asked:%20%3ci%3eWhat%27s%20up?%3c/i%3e">Path</a></div><div><a href="/?q=I%20asked%3a%20%3ci%3eWhat%27s%20up%3f%3c%2fi%3e">Query</a></div><div><a οnclick="f('I asked: \x3ci\x3eWhat\x27s up?\x3c\/i\x3e')">Onclick</a></div>

    可以看見 Go 會自動為我們處理 html 標簽的轉義。這對 web 安全具有重要作用。避免了一些 XSS 攻擊。

    XSS安全

    安全是一個很大的話題,XSS 安全也包含很多內容,關于模板我們已經介紹了很多內容。XSS 安全就簡單介紹一下即可。

    XSS 主要分為三種,我們先測試其中一種。即通過提交待 script 標簽的內容執行 js。例如下面的 html

    layout.html 加一個表單

    <form action="/" method="post">Comment: <input name="comment" type="text"><hr/><button id="submit">Submit</button> </form>

    一個最普通不過的表單。Go 的處理函數為:

    func templateHandler(w http.ResponseWriter, r *http.Request) {t, _ := template.ParseFiles("templates/layout.html")t.ExecuteTemplate(w, "layout", r.FormValue("comment")) }

    提交一段 js,可以看到 Go 在表達處理的時候,自動幫我們做了 xss 過濾

    當然,如果不想轉義標簽,需要使用 template.HTML 方法包裹:

    func templateHandler(w http.ResponseWriter, r *http.Request) {w.Header().Set("X-XSS-Protection", "0")t, _ := template.ParseFiles("templates/layout.html")t.ExecuteTemplate(w, "layout", template.HTML(r.FormValue("comment"))) }

    開發者尤其要注意 XSS 的安全處理,然而 XSS 原不是這么簡單,更多的內容請閱讀安全相關的資料。

    ?


    ?

    補充

    顯示 字典 數據

    package main import ("fmt""html/template""net/http" ) func handler(w http.ResponseWriter, r *http.Request) {t, _ := template.ParseFiles("index.html")err := t.Execute(w, map[string]string{"Title": "My title", "Body": "Hi this is my body"})if err != nil {panic(err)} } func main() {http.HandleFunc("/", handler)http.ListenAndServe(":8080", nil) }

    index.html

    Title is {{.Title}}

    ?


    ?

    遇到的問題

    // testtmpl.go type UserInfo struct {Name string }func main() {t := template.New("My Reporter")t, err := t.ParseFiles("views/report.html")if err != nil {fmt.Println("parse error")return}err = t.Execute(os.Stdout, UserInfo{Name: "tonybai"})if err != nil {fmt.Println("exec error", err)}return }

    執行結果,報錯:

    go run testtmpl.go exec error template: My Reporter: "My Reporter" is an incomplete or empty template; defined templates are: "report.html"

    看起來似乎 template 對象與模板名字對不上導致的錯誤啊。修改一下:

    t := template.New("report.html")

    執行結果:

    <html> <head> </head> <body>Hello, tonybai </body> </html>

    這回對了,看來 template 的名字在與 ParseFiles 一起使用時不是隨意取的,務必要與模板文件名字相同。

    ParseFiles 支持解析多個文件,如果是傳入多個文件該咋辦?godoc 說了,template 名字與第一個文件名相同即可。

    ?

    ?

    參考:

    http://www.jianshu.com/p/05671bab2357

    [鳥窩]Go 模板嵌套最佳實踐

    [Tony Bai]近期遇到的3個Golang代碼問題

    轉載于:https://www.cnblogs.com/52php/p/6412554.html

    總結

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

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

    国产无区一区二区三麻豆 | 欧美日韩后 | 一区中文字幕在线观看 | 五月天高清欧美mv | 久久久官网| 日韩 在线a | 又长又大又黑又粗欧美 | 日批网站免费观看 | 天天艹天天干天天 | 久久综合久久综合久久综合 | 日日夜夜天天综合 | 射九九 | 日本三级人妇 | 精品久久久久久久久久久久久久久久 | 一区二区三区视频在线 | 日韩视频在线观看免费 | 黄色小说视频网站 | 丁香综合av | 欧美999| 美女网站色在线观看 | 在线视频欧美精品 | 免费韩国av | 97色资源| 欧美激情第八页 | 综合网久久 | 国产黄色片在线 | 婷婷久久一区 | 日韩在线视频不卡 | 色哟哟国产精品 | 国产丝袜网站 | 久久久久久久久久久久av | 国产日产av| 免费人人干 | 亚洲午夜久久久综合37日本 | 久久久久久久久电影 | 国产五月婷| 欧美一级久久久久 | 丁香婷婷综合网 | 久爱精品在线 | 人人爽人人爽人人片av | 日韩极品在线 | 五月激情亚洲 | 黄色资源在线观看 | 亚洲国产午夜 | 国产精品9999久久久久仙踪林 | 毛片www| 欧美少妇的秘密 | 久久综合色天天久久综合图片 | 丁香狠狠| 日韩精品视频一二三 | 国内精品国产三级国产aⅴ久 | 久久999久久| 曰韩在线 | 中文字幕资源在线观看 | 天天射天天拍 | 九九视频精品在线 | 日本久久免费视频 | 婷婷电影在线观看 | 国产在线观看你懂得 | 国内精品国产三级国产aⅴ久 | 91原创在线观看 | www.香蕉 | 精品国模一区二区三区 | 久久精品亚洲综合专区 | 午夜精品一区二区三区在线观看 | 久久不卡av| 怡红院久久 | 亚洲最大的av网站 | 国产成人在线免费观看 | 欧美9999 | 中文日韩在线视频 | av高清网站在线观看 | 亚洲精品高清视频 | 精品国产123| 国产91av视频在线观看 | 日韩电影中文字幕在线观看 | 人人干干人人 | 国产黄色免费看 | 欧美日韩观看 | 丁香婷婷色综合亚洲电影 | 精品国产电影一区二区 | 亚洲精品午夜国产va久久成人 | 99爱在线 | 美女久久久久久久久久久 | 国语久久 | 欧美日韩综合在线 | 国产91在线免费视频 | 国产成人av综合色 | 特黄色大片 | 欧美日韩国产精品久久 | 超碰97在线看 | 日韩欧美精品在线观看视频 | 开心激情五月网 | 人人爱天天操 | 亚洲精品美女久久久久网站 | 免费福利视频网 | 午夜精品久久久久久久爽 | 日日夜夜精品视频天天综合网 | 精品国产精品久久一区免费式 | 国产精品尤物 | 色久五月| 国产精品美女久久久久久久久久久 | 亚洲伊人网在线观看 | 欧美特一级片 | 夜色资源站国产www在线视频 | 色婷婷88av视频一二三区 | 狠狠色狠狠色终合网 | 欧美日韩在线免费观看 | 天天操网 | 一级性生活片 | 丁香婷婷综合激情 | 99久久久国产精品 | 中文字幕一区二区三区精华液 | 国产小视频免费在线网址 | 亚洲精品国产精品99久久 | 一区二区电影在线观看 | 午夜视频在线观看一区 | 亚洲闷骚少妇在线观看网站 | 字幕网资源站中文字幕 | 蜜臀aⅴ国产精品久久久国产 | 国产福利一区二区在线 | 色综合天天做天天爱 | 欧美 高跟鞋交 xxxxhd | 97电影网站 | 欧美午夜激情网 | 天天·日日日干 | 国产三级精品在线 | 午夜神马福利 | 草在线视频| 亚洲成av人片在线观看无 | 免费情缘 | 97国产超碰 | 免费看黄网站在线 | 在线视频1卡二卡三卡 | 草久久久久| 久久精品国产第一区二区三区 | 99视频在线免费看 | 天天爽天天摸 | 美女黄久久 | 伊人成人精品 | 1024手机基地在线观看 | 九精品| 亚洲激情 在线 | 狠狠干2018| 日日干精品| 九九亚洲精品 | 不卡的av | 成人91在线| 成人一区二区三区在线观看 | 欧美性生交大片免网 | 在线国产中文字幕 | 日本韩国中文字幕 | 天天插狠狠插 | 97精品国自产拍在线观看 | 九九视频一区 | 免费看污的网站 | 色网站视频 | 欧美色综合天天久久综合精品 | 黄在线免费观看 | 日韩午夜一级片 | 日本中文在线播放 | 亚洲精品乱码久久久久久按摩 | 亚洲黄色在线观看 | 在线黄色免费av | 亚洲一区二区精品3399 | 天天干天天做天天爱 | 久久久亚洲国产精品麻豆综合天堂 | 精品国产人成亚洲区 | 色小说av| 国产最新视频在线 | 国产xvideos免费视频播放 | 99re在线视频观看 | 日韩欧美久久 | 国产精品成人自产拍在线观看 | 国产一二区在线观看 | 韩国av免费在线 | 亚洲va在线va天堂 | 五月黄色 | 丁香六月天 | 500部大龄熟乱视频 欧美日本三级 | 99麻豆久久久国产精品免费 | 国产成人精品一区二区在线观看 | 欧美国产高清 | 人人插人人插 | av一区二区三区在线观看 | 97超碰人| 在线观看网站你懂的 | 激情在线网站 | 性色大片在线观看 | 91重口视频 | 天天干天天拍 | 日韩在线中文字幕 | 操操操人人 | 亚洲国产99 | 精品视频免费久久久看 | 久久午夜羞羞影院 | 亚洲片在线 | 国产丝袜美腿在线 | 国产原厂视频在线观看 | 欧美国产亚洲精品久久久8v | 精品欧美一区二区在线观看 | 欧美日韩免费一区二区 | 亚洲精品国产日韩 | 性色av一区二区三区在线观看 | 日韩电影一区二区在线 | 久草免费看 | 综合激情| 国产亚洲精品久久久久久大师 | 免费午夜网站 | av黄色国产 | 在线观看91精品视频 | 久人人 | 国产精品九九九 | 日韩久久精品一区二区 | 中文字幕一区二区三 | 中文字幕在线色 | 日日操天天操狠狠操 | 日日摸日日爽 | 国产精品久久久久久久久久久久 | 欧美最新大片在线看 | 日韩区欧美久久久无人区 | 国产日韩一区在线 | 国产美女精品人人做人人爽 | 色吊丝在线永久观看最新版本 | 久久国产高清 | 久久综合婷婷国产二区高清 | 夜夜骑首页 | 亚洲综合精品视频 | 在线天堂日本 | 美女久久99 | 亚洲综合欧美激情 | 欧美少妇的秘密 | 91理论片午午伦夜理片久久 | 色欧美88888久久久久久影院 | 一区二区激情 | 在线91av| 成人av一级片 | 国产又粗又猛又黄视频 | 日韩一二三在线 | av在线免费在线 | 国产中文| 深爱激情开心 | 成人一区二区三区在线观看 | 18国产精品福利片久久婷 | 视频在线观看入口黄最新永久免费国产 | 日韩精品免费一区二区在线观看 | 久草在线免费资源站 | 亚洲精品自拍视频在线观看 | 黄色官网在线观看 | 精品99久久 | 欧美男男激情videos | 国产99免费 | 国产精品99久久久久久久久久久久 | 玖玖视频精品 | 97在线看 | 蜜桃视频在线视频 | 人人舔人人爱 | 99久久精品午夜一区二区小说 | 九九欧美 | www五月 | 韩国视频一区二区三区 | 免费日韩 精品中文字幕视频在线 | 精品久久久久久亚洲 | 午夜电影 电影 | 四川妇女搡bbbb搡bbbb搡 | 亚洲成人精品在线观看 | 亚洲美女免费精品视频在线观看 | 久久99精品久久久久蜜臀 | 99久久久久久久 | 天天干,夜夜操 | 97超碰人人 | 操操操日日 | 99精品国产高清在线观看 | 久久国产成人午夜av影院宅 | 美女免费视频观看网站 | 激情小说网站亚洲综合网 | 91福利视频免费 | 国产色网站 | 三上悠亚一区二区在线观看 | 成人在线观看影院 | 麻豆久久精品 | 免费精品在线视频 | 五月婷婷激情综合 | 国产精品免费在线观看视频 | 色无五月 | 精品福利在线视频 | 欧美日韩一区二区三区视频 | 国产精品久久99综合免费观看尤物 | 国产黄色大片免费看 | 97狠狠操 | av免费观看高清 | 亚洲激情在线视频 | 天天草av | 日韩在线观看精品 | 91九色国产 | 黄色特级一级片 | 在线观看国产福利片 | 狠狠色狠狠色终合网 | 探花视频在线观看免费 | 五月婷婷激情综合网 | 国产精品女主播一区二区三区 | 激情在线五月天 | 欧美性一级观看 | 五月婷婷激情六月 | 99亚洲视频 | 欧美性色综合网 | 超碰在线cao | 亚洲jizzjizz日本少妇 | 4438全国亚洲精品观看视频 | 久草网视频在线观看 | 日韩电影在线观看一区二区三区 | 成人宗合网 | 亚洲精品网站在线 | 国产99色 | 99视频+国产日韩欧美 | 国产精品永久免费在线 | 91天堂在线观看 | 国产小视频在线观看免费 | 中文字幕在线免费播放 | 亚洲另类视频在线观看 | www.玖玖玖| 日韩成人在线一区二区 | 91av蜜桃| 欧美一级片在线观看视频 | 色吊丝在线永久观看最新版本 | 久久天天躁夜夜躁狠狠躁2022 | 国产精品美女久久久久久久久久久 | 免费日韩 精品中文字幕视频在线 | 久草在线资源观看 | wwwwwww黄| av免费网站观看 | 中文字幕在线字幕中文 | 国内精品小视频 | 国产美女视频免费观看的网站 | 久久www免费视频 | 亚洲精品国产精品乱码在线观看 | 久草色在线观看 | 91 中文字幕 | 蜜臀av性久久久久av蜜臀妖精 | 中文字幕精品久久 | 国产一区二区在线观看免费 | 狠狠干狠狠色 | 天天干,天天射,天天操,天天摸 | 人人躁| 在线免费黄色片 | 国产999在线 | 午夜精品av| www.久热| 亚洲精品乱码白浆高清久久久久久 | 在线视频日韩精品 | 91在线资源 | 国产一区二区久久久久 | 四虎4hu永久免费 | 中文 一区二区 | 亚洲精品2区 | 亚洲精品久久久久久久蜜桃 | 色视频成人在线观看免 | 欧美日本不卡视频 | 国产精品美女久久久 | 日韩簧片在线观看 | 日韩精品一区二区三区电影 | 麻豆成人小视频 | 日日夜夜天天干 | 日韩女同av | 99久久激情 | 六月色 | 又黄又爽的免费高潮视频 | 在线观看mv的中文字幕网站 | 日韩1页| 91爱看片 | 色婷婷国产在线 | 欧美日韩精品在线视频 | 不卡国产视频 | 亚洲视频精选 | 中文字幕之中文字幕 | 女人高潮一级片 | 久久久久影视 | 精品欧美小视频在线观看 | 美女网站色 | av观看免费在线 | 嫩草av在线 | 色欧美88888久久久久久影院 | 中字幕视频在线永久在线观看免费 | 亚洲精品国偷自产在线91正片 | 国产 在线 高清 精品 | 久草电影免费在线观看 | 国产原创在线视频 | 国产精品美女久久久久久久久久久 | 日韩天天干 | 精品视频专区 | 国产玖玖在线 | 成人国产亚洲 | 日韩av免费在线看 | 91在线影院| 色在线免费 | 在线看毛片网站 | av在线不卡观看 | 国产小视频在线观看免费 | 久久久午夜精品福利内容 | 99久久精品久久久久久动态片 | 狠狠操91| 久久午夜色播影院免费高清 | 亚洲人成精品久久久久 | 97在线观看视频国产 | 亚洲成人二区 | 久久综合久久久久88 | 97小视频| 精品国产乱码一区二 | 7777精品伊人久久久大香线蕉 | 成人免费观看电影 | 国产美女精品久久久 | 国产专区视频在线观看 | 欧美精品久久久久久久 | 国产剧情一区二区 | 综合色伊人 | 四虎影视8848aamm| 久久成熟 | 欧美xxxx性xxxxx高清 | 日韩高清av在线 | 亚洲人av免费网站 | 国产精品久久久久9999吃药 | 国产精品女人久久久 | 九九久久婷婷 | 国产精品亚洲a | 国产免费又黄又爽 | 国产精品久久久久久久久久久久午夜 | 亚洲成av人片在线观看 | 久草在线观看资源 | 中文字幕在线网址 | 久久久久亚洲精品中文字幕 | 国产精品免费观看网站 | 天堂av在线中文在线 | 在线看v片成人 | 97免费在线观看视频 | 综合精品久久 | 97在线观看免费视频 | 日韩av电影免费观看 | 亚洲精品乱码久久久久久蜜桃不爽 | av中文电影 | 99热国产在线 | 免费视频97 | 中文字幕在线视频免费播放 | 人人射人人爽 | 久草在线视频首页 | 亚洲人久久久 | 国产免费高清 | 精品亚洲免费视频 | av免费网站观看 | 日韩在线观看av | 激情欧美在线观看 | 最新成人在线 | 青青草国产精品 | 天天躁天天狠天天透 | 日韩av女优视频 | 天天躁日日 | 人人看人人 | 久久在现视频 | 久久久精品国产免费观看同学 | 99热国产在线观看 | 国产精品久久久久久久久久久久午夜 | 精品久久国产一区 | 一级特黄av | 成年人免费看片 | 香蕉视频国产在线观看 | 亚洲国产精品va在线看黑人 | 免费在线观看的av网站 | 婷婷开心久久网 | 97超视频免费观看 | www色com| 911久久香蕉国产线看观看 | 日韩v欧美v日本v亚洲v国产v | 中文字幕一区二区三 | av天天干| 国产日韩欧美综合在线 | 国产三级精品三级在线观看 | 久久国产精品电影 | 一级黄色片网站 | 麻豆视频一区二区 | 狠狠干夜夜爽 | 久久免费视频观看 | 成人av网站在线观看 | 色小说av| 91综合视频在线观看 | 婷婷丁香导航 | 国产精品久久久久国产精品日日 | 色六月婷婷 | 中文字幕av最新 | 麻豆精品视频在线 | 九九在线高清精品视频 | 黄色av一级 | 人人躁 | 久久兔费看a级 | 日韩免费一区二区在线观看 | 免费毛片一区二区三区久久久 | 美女黄网站视频免费 | 成人久久电影 | 日韩av中文字幕在线免费观看 | 伊人精品在线 | 狠狠操.com | 超碰人人草人人 | 亚洲精品动漫久久久久 | 亚洲欧洲成人精品av97 | 亚洲成人资源网 | 亚洲理论电影 | 日韩精品视频在线观看免费 | 91精品1区2区 | 国产成人精品一区二区三区 | 香蕉手机在线 | www.色午夜.com | 91久久国产综合精品女同国语 | www日| 99热这里只有精品国产首页 | 精品久久久久久一区二区里番 | 久草免费在线观看视频 | 久久一区国产 | 日韩在线视频免费观看 | 久久精品99国产国产精 | 九九免费在线观看视频 | 97精产国品一二三产区在线 | 日韩3区 | 欧美在线视频日韩 | 亚洲一区免费在线 | 亚洲精品国 | 99精品国产99久久久久久福利 | 九九九九精品九九九九 | 国产精品免费观看久久 | 国产精品系列在线 | 香蕉一区 | 国产黄色资源 | 91在线蜜桃臀 | 97精品国产97久久久久久免费 | 射久久久| 婷婷中文在线 | 超碰在线天天 | 夜夜躁日日躁狠狠躁 | av最新资源 | 国产精品久久久久9999 | 黄色三级在线看 | 高清一区二区三区av | 在线观看视频在线观看 | 国产精品av免费 | 在线色资源 | 精品国产成人在线 | 国产精品久久久一区二区三区网站 | 色姑娘综合天天 | 国产不卡在线观看视频 | 国产成人av在线 | 国产视频在线观看一区二区 | 91在线中文字幕 | 色姑娘综合网 | 日韩欧美视频一区二区三区 | 国产综合婷婷 | 午夜影院一级片 | 美女视频黄色免费 | 成人免费网站视频 | 黄色福利视频网站 | 深爱激情五月婷婷 | 夜色.com| 国产中文字幕久久 | 日韩在线视频播放 | 在线视频免费观看 | 欧美 高跟鞋交 xxxxhd | 国产黄色精品视频 | 人人干人人草 | 久久免费在线观看视频 | 国产精品成人免费精品自在线观看 | 美女久久久久久久久久久 | 青春草视频在线播放 | 久99精品 | 国内精品在线看 | 亚洲黄网址 | 国产精品女人久久久久久 | 日韩电影在线观看中文字幕 | 久久综合九色综合欧美狠狠 | 毛片基地黄久久久久久天堂 | 国产视频首页 | 日本精品在线 | 中文字幕视频一区 | 色婷婷国产精品一区在线观看 | 亚洲一一在线 | 日韩国产欧美在线视频 | 久久精品国产一区 | 深夜免费福利 | 久草在线手机视频 | 国产成人一区二区三区久久精品 | 波多野结衣电影一区 | 韩国av电影网 | 91精品综合在线观看 | 久久国产精品久久精品国产演员表 | www久| 超碰人人射 | 干天天 | 91黄色免费网站 | 正在播放一区 | 91禁在线观看 | 超碰人人99 | 欧美视频www | 欧美久久久久久久久久久久久 | 久久99国产精品 | 久久久久久久久久久久久久av | 在线观看av免费 | 涩涩色亚洲一区 | 国产成人精品久久久久 | 免费午夜视频在线观看 | 日本最新高清不卡中文字幕 | 成人av在线一区二区 | 亚洲人成人在线 | 日韩二三区 | 亚洲精品在线网站 | 亚洲国产精品500在线观看 | 91精品国产成人观看 | 婷婷激情综合五月天 | 黄色福利视频网站 | 黄色a级片在线观看 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 久久精品视频免费播放 | 黄色成人av网址 | 日韩在线视频在线观看 | av免费试看 | 中文字幕日本电影 | 日本中文字幕网站 | 最新日韩视频 | 日韩资源视频 | 国产视频美女 | 在线国产黄色 | 国产视频二区三区 | 日韩精品一区二区三区高清免费 | 中文字幕首页 | 精品欧美小视频在线观看 | 国产日韩精品视频 | 亚洲精品国产综合99久久夜夜嗨 | 伊人久久国产精品 | ww视频在线观看 | 国产精品一区在线观看 | 国产一级做a | 色视频 在线 | 在线观看免费av网站 | 久草在线免费色站 | 999久久久国产精品 高清av免费观看 | 国产精品你懂的在线观看 | 激情欧美一区二区免费视频 | 人人爱人人射 | 91高清在线看 | 成人a免费看 | 亚洲黄色三级 | 99c视频高清免费观看 | 在线视频你懂得 | 成x99人av在线www | 久久激情五月婷婷 | 午夜视频黄 | 日韩av免费在线电影 | 黄色激情网址 | 日韩在线观看你懂的 | 国内外成人在线视频 | 国产高清一级 | 不卡电影免费在线播放一区 | 免费网站在线观看成人 | 亚洲国内精品视频 | 欧美一级电影免费观看 | 成人国产精品av | 国产精品情侣视频 | 91女子私密保健养生少妇 | 亚洲一级理论片 | av免费在线网 | 亚洲成人动漫在线观看 | 久久精品屋 | 亚洲高清在线精品 | 色欧美视频| 波多野结衣一区二区 | 国产破处视频在线播放 | 九九热免费在线视频 | 国产精品高潮久久av | 亚洲成aⅴ人片久久青草影院 | 天堂av观看| 国产999精品久久久久久 | 免费在线观看av片 | 国产视频精品视频 | 手机看片1042 | 99精品国产99久久久久久97 | 狠狠色伊人亚洲综合成人 | 国产69精品久久久久久久久久 | 日韩手机在线观看 | 色94色欧美| 天堂网一区二区 | 探花在线观看 | 日韩精品免费专区 | 欧美日韩高清 | 九九视频这里只有精品 | 国产精品大片免费观看 | 一区二区三区在线电影 | 有没有在线观看av | 一级欧美日韩 | japanesefreesexvideo高潮 | 国产精品永久 | 99色人| av免费在线观看1 | 91精品一区二区在线观看 | 在线免费黄色毛片 | 成人资源在线 | 亚洲天堂网在线视频观看 | 99视频导航 | 国产精品中文字幕av | 亚洲午夜精品一区 | 国产精品毛片久久久久久久久久99999999 | 99这里只有 | 日韩国产精品毛片 | 免费亚洲视频 | 美女网站在线 | 国产亚洲婷婷免费 | 国产一级久久久 | 免费在线激情电影 | 国产精品成人国产乱一区 | 久久久久久久久久久福利 | 天天鲁天天干天天射 | 久久久久福利视频 | 亚洲丝袜一区 | 免费精品国产va自在自线 | 国产精品免费久久久久影院仙踪林 | 精品国产自 | www.婷婷色 | 欧美午夜激情网 | 日韩欧美高清免费 | 国产精品久久久久久久久久ktv | 日韩免费专区 | v片在线看 | 亚洲国产精品成人va在线观看 | 国产精品日韩在线观看 | 亚洲乱码中文字幕综合 | 人人干狠狠干 | 天天av天天| 亚洲精品欧美专区 | 日韩免费观看高清 | 激情婷婷六月 | 一区二区三区动漫 | 日日碰狠狠添天天爽超碰97久久 | 国产日韩精品一区二区三区在线 | 综合天堂av久久久久久久 | 欧美一二三视频 | 69视频国产 | 99国产情侣在线播放 | 日本中文字幕在线 | 丁香九月婷婷 | 一二三精品视频 | 久久综合欧美精品亚洲一区 | 欧美日性视频 | 黄色影院在线观看 | 亚洲天堂自拍视频 | 日韩伦理片一区二区三区 | 日韩激情小视频 | 国产99久久久国产精品成人免费 | 黄污视频大全 | 亚洲一区在线看 | 国产成人精品亚洲日本在线观看 | 日韩一区二区三区观看 | 久久艹艹 | 一区二区 久久 | 成人av资源在线 | 91久久久久久国产精品 | 九月婷婷人人澡人人添人人爽 | 最新91在线视频 | 夜夜夜影院 | 亚洲精品视频播放 | 国产精品久久久毛片 | 国产91丝袜在线播放动漫 | 99热国产精品 | 国产精品永久久久久久久www | 99久热| 午夜精品久久久久久久99水蜜桃 | 夜夜爱av | 亚洲精品乱码久久久久久蜜桃91 | 亚洲激情国产精品 | 黄色官网在线观看 | 国产色综合天天综合网 | 亚洲 av网站 | 久久精品这里都是精品 | 久久久国产影视 | 色中色亚洲 | av免费试看 | 国产又粗又猛又黄又爽视频 | 91视频在线观看下载 | 久久免费国产精品1 | 黄色网在线免费观看 | 国产在线综合视频 | 亚洲六月丁香色婷婷综合久久 | 不卡在线一区 | 国内视频在线 | 色.com| 国产一级黄色av | 人人爽人人爽人人爽学生一级 | 久久久久网址 | 又黄又网站 | 国产精品一区二区三区电影 | 精品国产自在精品国产精野外直播 | 狠狠色丁香九九婷婷综合五月 | 视频在线一区二区三区 | 国产精品黄色影片导航在线观看 | 91高清视频免费 | 色婷婷综合久久久久 | 国产免费亚洲高清 | 黄在线免费看 | 久久国产精品久久国产精品 | 欧美aaa视频 | 国产精品成人免费一区久久羞羞 | 97看片吧 | 亚洲视频精选 | 日韩国产高清在线 | 中文综合在线 | 成人av直播 | 成人a在线观看 | 日韩欧美高清在线观看 | 97狠狠操| av超碰在线 | 91成人在线观看喷潮 | 精品国产1区二区 | 91精品影视 | 久久人人爽人人片av | 日韩久久午夜一级啪啪 | 亚洲日本欧美在线 | 黄色大全视频 | 日韩欧美在线一区 | www..com黄色片| 午夜 久久 tv| 欧美一级电影在线观看 | 91精品视频免费 | 国产精品永久免费观看 | 超碰国产97 | 日韩免费在线观看视频 | 久草在线这里只有精品 | 成人在线免费av | 在线国产中文字幕 | 有码中文字幕在线观看 | 免费看一及片 | 久久任你操 | 久草在线一免费新视频 | 国产老熟| 最新日韩在线观看视频 | 亚洲经典视频 | 日本中文字幕网 | 2024国产精品视频 | 中文字幕影视 | 青青草国产成人99久久 | 日本中文字幕在线免费观看 | 国产色视频网站2 | 久久成人国产精品入口 | 久久精品网站视频 | v片在线播放 | 在线天堂中文在线资源网 | 91高清完整版在线观看 | 亚洲黄色在线 | av不卡免费在线观看 | 视频1区2区 | 四虎在线免费观看视频 | 免费视频久久久久久久 | 亚洲欧美视频在线观看 | 色偷偷中文字幕 | 麻豆精品视频在线观看免费 | 视频一区在线播放 | 国产视频每日更新 | 成年人在线电影 | 四虎国产精品成人免费影视 | 黄色成年网站 | 91夫妻视频 | 国产亚洲欧美在线视频 | 国产精品福利在线播放 | 久久精品免费观看 | www.狠狠色.com | 欧美精品亚洲精品日韩精品 | 夜夜骑日日 | 青青草国产精品 | 1000部18岁以下禁看视频 | 国产精品欧美日韩在线观看 | 国外成人在线视频网站 | av一级片网站 | 久久精品一级片 | 亚洲国产欧洲综合997久久, | 丁香六月久久综合狠狠色 | 欧美日韩在线网站 | 夜色成人av | 精品国产乱码久久久久久1区2匹 | 亚洲精品黄色在线观看 | 国内精品亚洲 | 欧美一级小视频 | 在线国产高清 | 久草av在线播放 | 99福利片 | 成人av在线网 | 午夜av不卡 | 精品久久久久久综合日本 | 91福利社区在线观看 | 黄色一级在线免费观看 | 免费久久视频 | 色av色av色av | 黄色一级大片在线免费看产 | 日韩免费在线观看视频 | 免费黄在线观看 | 国产男女无遮挡猛进猛出在线观看 | 色综合咪咪久久网 | 成人av一二三区 | 91亚洲精品久久久中文字幕 | 国产高清视频色在线www | 亚洲aⅴ在线观看 | 国产91丝袜在线播放动漫 | 久草男人天堂 | 99视频在线观看一区三区 | 在线观看理论 | 亚洲黄色一级视频 | 亚洲欧美国内爽妇网 | 亚洲高清国产视频 | 97人人爽人人 | 国产精品久久久久aaaa九色 | 九九在线免费视频 | 黄色成人影视 | 欧美a在线看 | 欧美亚洲国产一卡 | 国产网站在线免费观看 | 性色av香蕉一区二区 | 成人在线超碰 | 日本视频高清 | 爱爱av网站 | 精品中文字幕在线观看 | 在线观看国产福利片 | 亚洲美女视频在线 | 午夜国产一区二区三区四区 | 免费看黄视频 | 亚洲精品自拍 | 久色 网 | 久久优 | 色综合婷婷 | 亚洲精品中文在线资源 | 在线观看日韩专区 | 国产高清 不卡 | 国产精品久久久久久久久蜜臀 | 97国产精品| 精品久久久久久一区二区里番 | 99免费在线视频观看 | 成人av影视观看 | 国产一区二区免费在线观看 | 久久国产精品视频免费看 | 中文一区在线观看 | 手机色在线 | 国产裸体永久免费视频网站 | 偷拍福利视频一区二区三区 | 国产成人精品一区二区三区福利 | 久久精品一区二区三区四区 | 91精彩视频在线观看 | 天堂av网站 | 天天操夜操视频 | 少妇视频一区 | 日韩精品91偷拍在线观看 | 区一区二区三区中文字幕 | 久久国产剧场电影 | 国产专区视频 | 一级片免费观看 | 黄污在线观看 | 蜜桃av人人夜夜澡人人爽 | 中文一区在线观看 | 在线视频欧美日韩 | 亚洲乱亚洲乱亚洲 | 国产99一区视频免费 | 亚洲成成品网站 | 久久九九精品久久 | 九色精品在线 | 美女福利视频 | 亚洲a在线观看 | 国产黄免费 | 在线不卡的av | 五月天国产 | 日韩欧美视频 | 久久久免费在线观看 | 国产综合91 | 91av免费观看| 18国产精品白浆在线观看免费 | 97在线看片 | 久久久久色| 国产成人av电影在线观看 | 日韩在线观看视频中文字幕 | 久久永久视频 | 天天干夜夜夜 | 天天爽夜夜爽人人爽一区二区 | 在线观看欧美成人 | 公开超碰在线 | 一区二区三区四区精品 | 啪啪动态视频 | 天天摸天天舔 | 日本精品va在线观看 | 在线亚洲免费视频 | 中文字幕精品一区二区精品 | 久久亚洲成人网 | 中文永久字幕 | 国产精品久久久久永久免费 | 久久精品国产亚洲 | 日韩精品 在线视频 | av看片在线| a视频在线看 | 91日韩精品| 久久在现 | 国产精品欧美日韩在线观看 | 天天色天天操天天爽 |