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

一篇文章淺析Django Form組件相關知識

開發 前端
本篇先從入門角度說如何使用簡單使用Django Form組件,使用Form組件和沒使用Form組件的區別。

[[375799]]

前言

在上一篇時,我們小試牛刀了以下Django Form組件的使用,一篇文章帶你了解Django Form組件(入門篇),沒來得及的小伙伴可以一起看看。但是你可能會有很多疑問,并不知道怎么使用。

并且知道Form組件的功能。

  • 生成HTML標簽。
  • 驗證提交的數據。
  • 保留提交之前的數據。

所以本篇就接著上次的繼續,來一起學習以下Django Form組件如何使用。

Form組件的理解

沒有使用Form組件時

在一般情況下,我們如果編寫輸入框時,在Html中,一般都是這樣寫的。

代碼

  1. ... 
  2. <form method="post" action="" novalidate> 
  3.     <div> 
  4.         <label>用戶名:</label> 
  5.         <input type="text" name="uname"
  6.     </div> 
  7.     <div> 
  8.         <label>密碼:</label> 
  9.         <input type="text" name="upwd"
  10.     </div> 
  11.     <div><input type="submit"></div> 
  12. </form> 
  13. ... 

 實現效果


使用Form組件時

在使用Form組件時,我們通常需要定義Form類。

這個Form,里面的字段,就可以理解為input標簽,只不過是在后端寫的。

Form類

  1. from django.forms import Form 
  2. class LoginForm(Form): 
  3.     uname = fields.CharField(label="用戶名"
  4.     upwd = fields.CharField(label="密碼"

views.py

  1. from django.shortcuts import render 
  2. def login(request): 
  3.     form = LoginForm() 
  4.     return render(request, "login_f.html", {"form": form}) 

html

  1. ... 
  2. <form method="post" action="" novalidate> 
  3.     <div> 
  4.         <label>{{ form.uname.label }}:</label> 
  5.         {{ form.uname }} 
  6.         <!--  
  7.             form.uname.errors.0 是為了展示填寫不正確的錯誤信息 
  8.             errors.0是因為錯誤可能有多個 
  9.             但是通常情況下,取第一個錯誤足夠 
  10.          --> 
  11.         {{ form.uname.errors.0 }} 
  12.     </div> 
  13.     <div> 
  14.         <label>{{ form.upwd.label }}:</label> 
  15.         {{ form.upwd }} 
  16.         {{ form.upwd.errors.0 }} 
  17.     </div> 
  18.     <div><input type="submit"></div> 
  19. </form> 
  20. ... 

 小總結

可以發現,我并沒有寫input代碼,而是直接調用后端的form.<字段名>出來的。

Form類生成的Html


可以發現,基本上和自己寫的Html差不多,生成的id為id+<字段名>。

Form生成的Html和手動寫Html對應圖


通過對應圖確定,通過后端的form.<字段>生成的直接就是input標簽。

好了,到這,就確定了Form類,就是為我們生成input標簽的。

Form使用

使用有以下步驟。

1.創建Form類,盡可能和models對上。

  1. class LoginForm(Form): 
  2.     uname = fields.CharField(label="用戶名"
  3.     upwd = fields.CharField(label="密碼"

因為Form提交的數據,可以轉換成dict,key就是Form字段名。

如果Form字段和models對上,直接models.<模型類>.objects.create(**dict)。

2.如果是GET請求,實例化Form對象,并且返回頁面。

  1. def login(request): 
  2.     if request.method == 'GET'
  3.         form = LoginForm() 
  4.         return render(request, "login_f.html", {"form": form}) 

3.如果是POST請求,實例化Form對象時,傳入request.POST,request.FILES,并且驗證。

  1. # 接著上面 
  2.     elif request.method == "POST"
  3.         form = LoginForm(request.POST, request.FILES) 
  4.         ########### 驗證數據 
  5.         if form.is_valid(): 
  6.             # 驗證成功 
  7.             # 驗證成功之后的數據,key就是Form類的字段名 
  8.             print(form.cleaned_data)  # {'uname''1212''upwd''1212'
  9.             return HttpResponse("ok"
  10.         # 驗證失敗 
  11.         # 雖然返回的還是頁面 
  12.         # 但是form會把上次輸入框內容保存下來,并且還會展示errors信息 
  13.         return render(request, "login_f.html", {"form": form}) 

4.前端使用后端傳過來的form對象。

方式一,點每個字段

  1. <form method="post" action="" novalidate> 
  2.     <div> 
  3.         <!-- form.uname.label點的是label屬性  --> 
  4.         <label>{{ form.uname.label }}:</label> 
  5.         {{ form.uname }} 
  6.         <!-- 
  7.             form.uname.errors.0 是為了展示填寫不正確的錯誤信息 
  8.             errors.0是因為錯誤可能有多個 
  9.             但是通常情況下,取第一個錯誤足夠 
  10.          --> 
  11.         {{ form.uname.errors.0 }} 
  12.     </div> 
  13.     <div> 
  14.         <label>{{ form.upwd.label }}:</label> 
  15.         {{ form.upwd }} 
  16.         {{ form.upwd.errors.0 }} 
  17.     </div> 
  18.     <div><input type="submit"></div> 
  19. </form> 

 方式二,循環form對象

form對象是可以循環的,循環的每個form對象就是每個字段對象。

  1. <form method="post" action="" novalidate> 
  2.     {% for foo in form %} 
  3.         <div> 
  4.             <label>{{ foo.label }}:</label> 
  5.             {{ foo }} 
  6.             {{ foo.errors.0 }} 
  7.         </div> 
  8.     {% endfor %} 
  9.     <div><input type="submit"></div> 
  10. </form> 
 所以,如果一個表有很多的字段時,盡可能的采用循環方式。

Form字段

Form組件主要是幫助我們做驗證的,所以,當然有很多參數比如:

  • 否可以為空。
  • label展示的內容。
  • 等...

常用字段

Field類為所有字段的基類

Field參數如下

  • required=True,是否允許為空,默認True,不能為空
  • widget=None,插件,展示的input具體信息
  • label=None,label,標簽展示的內容
  • help_text="",幫助信息(在標簽旁邊顯示)
  • error_massages=None,錯誤信息{"required":"不能為空",...}
  • show_hidden_initial=False,是否在當前插件后再加一個隱藏且具有默認值的插件(可用于驗證兩次輸入是否一致)
  • validators=[],自定義驗證規則函數
  • localize=False,是否支持本地化
  • disabled=False,是否可以編輯
  • label_suffix=None,Label內容后綴

CharField(Field),比較常用的字段之一

  • min_length=None,最小長度
  • max_length=None,最大長度
  • strip=True,是否移除輸入空白

IntegerField(Field)

  • max_value=None,最大值
  • min_value=None,最小值

DecimalField(IntegerField)

  • max_value=None,最大值
  • min_value=None,最小值
  • max_digits=None,最大長度
  • decimal_places=None,小數位長度

其他字段還有

  1. BaseTemporalField(Field) 
  2. DateField(BaseTemporalField) 
  3. TimeField(BaseTemporalField) 
  4. DateTimeField(BaseTemporalField) 
  5. DurationField(Field) 
  6. RegexField(CharField) 
  7. EmailField(CharField) 
  8. FileField(Field) 
  9. ImageField(FileField) 
  10. URLField(Field) 
  11. BooleanField(Field) 
  12. NullBooleanField(BooleanField) 

...還有很多字段,這里就不一一贅述了,具體詳見官網:

https://docs.djangoproject.com/zh-hans/2.0/ref/forms/api/#django.forms.BoundField

多選字段

  1. ChoiceField(Field) 
  2. ... 
  3.     choices=() # 選項,如:choices = ((1,'一班'),(2,'二班'),) 
  4.     required=True # 是否必填 
  5.     widget=None # 插件,默認select插件 
  6.     label=None # Label內容 
  7.     initial=None # 初始值 
  8.     help_text='' # 幫助提示 
  9.  
  10. from django.forms.models import ModelChoiceField 
  11. # 單選 
  12. ModelChoiceField(ChoiceField) 
  13.     queryset=None # 查詢數據庫中的數據 
  14.     empty_label="---------" # 默認空顯示內容 
  15.     to_field_name=None # HTML中value的值對應的字段 
  16.     limit_choices_to=None # ModelForm中對queryset二次篩選 
  17. # 多選 
  18. from django.forms.models import ModelMultipleChoiceField 
  19. ModelMultipleChoiceField(ModelChoiceField) 
  20. ... 

widget參數對應的插件

即使字段是CharField,但是最終效果以插件為主!

  1. TextInput(Input) 
  2. NumberInput(TextInput) 
  3. EmailInput(TextInput) 
  4. URLInput(TextInput) 
  5. PasswordInput(TextInput) 
  6. HiddenInput(TextInput) 
  7. Textarea(Widget) 
  8. DateInput(DateTimeBaseInput) 
  9. DateTimeInput(DateTimeBaseInput) 
  10. TimeInput(DateTimeBaseInput) 
  11. CheckboxInput 
  12. Select 
  13. NullBooleanSelect 
  14. SelectMultiple 
  15. RadioSelect 
  16. CheckboxSelectMultiple 
  17. FileInput 
  18. ClearableFileInput 
  19. MultipleHiddenInput 
  20. SplitDateTimeWidget 
  21. SplitHiddenDateTimeWidget 
  22. SelectDateWidget 

widget示例

  1. from django.forms import fields, widgets 
  2. from django.forms import Form 
  3. user = fields.CharField( 
  4.     initial=2, 
  5.     widget=widgets.RadioSelect(choices=((1,'一班'),(2,'二班'),)) 
  6. or 
  7. user = fields.ChoiceField( 
  8.     choices=((1,'一班'),(2,'二班'),), 
  9.     initial=2, 
  10.     widget=widgets.RadioSelect 
  11. # 多選select,值為列表 
  12. user = fields.MultipleChoiceField( 
  13.     choices=((1,'一班'),(2,'二班'),), 
  14.     initial=[1,], 
  15.     widget=widgets.SelectMultiple 
  16. # 從數據庫中獲取多選 
  17. # 方式一 
  18. from django.forms import Form 
  19. from django.core.validators import RegexValidator 
  20.   
  21. class Form類(Form): 
  22.   
  23.     user = fields.ChoiceField( 
  24.         # choices=((1,'一班'),(2,'二班'),), 
  25.         initial=2, 
  26.         widget=widgets.Select 
  27.     ) 
  28.   
  29.     def __init__(self, *args, **kwargs): 
  30.         super(MyForm,self).__init__(*args, **kwargs) 
  31.         # self.fields['user'].widget.choices = ((1,'一班'),(2,'二班'),) 
  32.         # 或 
  33.         self.fields['user'].widget.choices = models.Classes.objects.all().value_list('id','caption'
  34. # 方式二 
  35. from django.forms import models as form_model 
  36. class Form類(Form): 
  37.     depart = form_model.ModelMultipleChoiceField(queryset=models.Depart.objects.all()) 

總結

本篇先從入門角度說如何使用簡單使用Django Form組件,使用Form組件和沒使用Form組件的區別。

然后講了以下Form如何使用。

  • 首先GET請求時,返回頁面。
  • POST請求時,驗證數據,判斷是否符合規則。
  • 如果失敗返回錯誤信息,如果成功繼續,寫入數據庫。

最后列舉出常用的Form字段,還有如何使用多選字段。

 

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2021-01-12 09:04:12

Django FormForm組件開發

2021-05-20 09:02:59

CSS單位長度

2020-12-29 09:05:48

基礎DjangoORM

2021-01-05 09:07:30

Django ORMF查詢Q查詢

2021-04-07 06:11:37

Css前端CSS定位知識

2021-07-13 11:37:47

cpu架構Linux

2021-01-07 11:10:47

關鍵字

2021-01-01 09:20:20

操作DjangoORM

2020-10-09 08:15:11

JsBridge

2021-03-21 07:36:43

Python迭代知識語言

2021-04-09 08:40:51

網絡保險網絡安全網絡風險

2022-02-21 09:44:45

Git開源分布式

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2024-06-25 08:18:55

2019-04-17 15:16:00

Sparkshuffle算法

2017-09-05 08:52:37

Git程序員命令

2019-05-21 14:52:57

2024-12-26 16:49:20

Python字典元素

2021-06-30 10:01:09

Python字典代碼
點贊
收藏

51CTO技術棧公眾號

91精品国产综合久久男男| 婷婷色一区二区三区| 精品久久久三级丝袜| 国内黄色精品| 91久久国产视频| 久久精品欧美一区二区三区不卡| 天堂资源中文在线| 18视频在线观看娇喘| 欧美性生交大片免网| 日韩精品一区国产| 永久免费未视频| 国产精品成人va在线观看| 99久免费精品视频在线观看| 麻豆影视国产在线观看| 天堂在线资源视频| 亚洲三级黄色在线观看| 一区二区91| 三级网站在线看| 国产高清不卡无码视频| 日韩欧美资源站| 免费观看日韩av| av在线三区| av激情久久| 久久夜色精品一区| 免费电影网站在线视频观看福利| 色片在线免费观看| 国产一区二区三区三区在线观看| 在线观看免费黄色| 日韩精品一区二区三区色欲av| 精品国产乱码久久久久久1区2区| 亚洲性感美女99在线| 亚洲福利在线观看视频| 色呦呦网站入口| 在线观看亚洲a| av在线导航| 自拍偷拍 国产| 日韩av中文字幕在线| 99热这里只有精品8| 天天操天天插天天射| 久久这里只有精品23| 亚洲国产高潮在线观看| 国产视频一区三区| 日本精品一二区| 国产乱子伦农村叉叉叉| 国产亚洲免费的视频看| 极品美女销魂一区二区三区免费 | 精品性高朝久久久久久久| 韩日欧美一区| 欧美拍拍视频| 91视频这里只有精品| 欧美成人午夜剧场免费观看| 成人免费视频一区| 日韩成人av电影| 欧美成欧美va| 亚洲黄色成人久久久| 日韩av在线免费看| 国产成人99久久亚洲综合精品| 欧美aa在线观看| 久草免费在线视频观看| 一区二区不卡在线视频 午夜欧美不卡' | 欧美国产视频日韩| 欧美韩国日本不卡| 国产三级精品三级在线观看国产| 97超碰人人草| 亚洲人辣妹窥探嘘嘘| 日本精品视频在线播放| 亚洲不卡一区二区三区| 欧美日韩理论| 爱看av在线入口| 在线观看天堂av| 亚洲精品tv久久久久久久久| 亚洲日韩中文字幕| 国产精品福利影院| а√天堂中文在线资源8| av免费播放网站| 国产精品99久久久久久大便| 永久免费毛片在线播放不卡| 成人免费视频网站在线观看| 亚洲高清影院| 秋霞精品一区二区三区| www.亚洲成人网| 久久在线精品视频| 樱花草国产18久久久久| 欧美一区91| caopeng在线| 国产三级国产精品国产国在线观看| 久久亚洲综合网| 亚洲日韩欧美视频| bt7086福利一区国产| 红杏视频成人| 亚洲精品国产片| 日韩av无码一区二区三区不卡| 91手机视频在线观看| 91精品国产综合久久香蕉麻豆| 国产高清在线观看免费不卡| 日本在线精品| 夜夜爽8888| 国产探花在线看| www.成人av| 日韩久久午夜影院| 久久网站最新地址| 狠狠色狠狠色综合婷婷tag| 黄色免费网站在线| 久草视频手机在线| 亚洲精品无码久久久久久| 国产成人精品综合| 精品日韩一区二区三区| 国产日产欧美精品一区二区三区| 欧美激情成人在线| 在线日韩影院| 刘亦菲国产毛片bd| 爱情岛论坛成人| 国产日韩一区欧美| 亚洲欧洲一区二区三区久久| 亚洲大片在线观看| 精品一区二区三区视频在线观看| 久久91在线| 国产一二三在线| 无码人妻精品一区二区三区不卡 | 欧美亚洲伦理www| 欧美日韩国产一区二区三区地区| 韩国视频一区二区| 四虎884aa成人精品最新| 欧美三级电影一区二区三区| 日本中文在线播放| 色播五月综合网| 精品国产一区二区三区四区vr | 久草在线免费福利资源| 久久国产黄色片| 免费在线观看你懂的| 日韩精品在线观看av| 国产精品av免费在线观看| 欧美一区二区三区视频免费播放| 26uuu国产一区二区三区| 99久久久久久中文字幕一区| 日本不卡一二三| 六十路在线观看| 国产一卡二卡三卡| 国产精品20p| 丰满少妇被猛烈进入高清播放| 国产专区一区二区| 日韩免费不卡av| 伊人久久男人天堂| 这里只有精品99re| 亚洲午夜久久久久久久久久久| 国产电影一区二区三区| 国产日产高清欧美一区二区三区| 蜜臀av免费一区二区三区| 久久69成人| 538在线视频| 国产在线一在线二| 99国产精品久久久久久久成人 | 免费在线稳定资源站| 69av视频在线观看| 波多野结衣a v在线| 天堂一区在线观看| 亚洲国产午夜伦理片大全在线观看网站 | 国产精品无码粉嫩小泬| 国产小视频在线免费观看| 国产毛片欧美毛片久久久| 91传媒理伦片在线观看| 欧美黑人又粗又大又爽免费| 男女私大尺度视频| 熟女视频一区二区三区| 国精产品99永久一区一区| 国产精品一区二区三区在线播放 | 99精品欧美一区二区三区综合在线| 国产精品一二三四| 不卡的av电影| 26uuu欧美| 国产清纯白嫩初高生在线观看91| 精品在线一区二区三区| 99精品热6080yy久久| 久久国产影院| 国产精品毛片视频| www.91精品| 日本视频不卡| 国产专区在线| 久草在线资源站资源站| 欧美aaa免费| 国产高清视频色在线www| 亚乱亚乱亚洲乱妇| 国产一区二区三区福利| 少妇激情av一区二区| 亚洲成人第一区| 国内av在线播放| 精品国产www| 中文字幕av片| 国产精品一区二区黑人巨大| 国产一区二区三区中文字幕| 99在线观看精品视频| 国产精品玖玖玖| 中文字幕视频网| 国产一卡二卡三卡| 一级特黄色大片| 亚洲av色香蕉一区二区三区| 精品人妻无码一区二区| 天堂av在线免费| 色视频在线观看| 番号集在线观看| 免费人成在线观看播放视频| 国产乱妇乱子在线播视频播放网站| 羞羞网站在线看| 影音成人av| 精品视频一区二区三区| 亚洲精品亚洲人成在线| 亚洲深深色噜噜狠狠爱网站| 一本一道久久综合狠狠老| 亚洲伊人观看| 成人av免费网站| 中文字幕一区二区在线播放| 黑人巨大精品欧美一区二区三区| 欧美一区二区三区视频在线观看| 亚洲精品国精品久久99热| 操日韩av在线电影| 国产美女精品免费电影| 亚洲一区二区在线看| 女人色极品影院| 成年网站在线播放| 精品1卡二卡三卡四卡老狼| 在线观看免费小视频| 日韩久久久久久久久| 亚洲精品国产手机| 97caopron在线视频| 亚洲伦理久久| av在线不卡顿| 噜噜噜91成人网| 91浏览器在线视频| 亚洲狼人国产精品| 欧美丰满高潮xxxx喷水动漫| 久久综合久久美利坚合众国| 91视频国产一区| 日本美女爱爱视频| 男人靠女人免费视频网站| 精品国产av色一区二区深夜久久| 日本成人精品视频| 国产视频一二三四区| av激情在线| 日韩精品久久久久久久软件91| 第四色成人网| 成人午夜视频网站| 日本高清不卡在线观看| 搡老女人一区二区三区视频tv| 国产精品入口免费| 国产不卡的av| 久久久久久久久久久97| 国产内射老熟女aaaa∵| 色欧美激情视频在线| 成人国产激情在线| 一区二区电影在线观看| 国产高清亚洲一区| 亚洲一区二区三区国产| 欧美成人精品福利| 国产精品入口日韩视频大尺度| 午夜精品美女久久久久av福利| 黄色片免费网址| 日韩欧美亚洲视频| 黄网站免费在线观看| 成人交换视频| 一区二区三区四区五区在线| youjizz久久| 宅男噜噜噜66一区二区66| 7m第一福利500精品视频| 国产精品美女在线播放| 亚洲最大免费视频| 亚洲精品福利网站| 日本美女久久| 乱人伦精品视频在线观看| 最近中文字幕一区二区三区| 亚洲欧洲高清在线| 国内精品视频免费| 潘金莲一级淫片aaaaa| 国产精品嫩草影院桃色| 羞羞污视频在线观看| 午夜免费一区| 国产精品欧美一区二区三区| 国产一区二区三区三区在线观看| 国产亚洲二区| 亚洲欧美色图视频| 日韩一区免费视频| 日韩伦理一区二区三区| 91在线视频免费观看| 欧美变态tickle挠乳网站| 91丝袜脚交足在线播放| 日本久久久久久久久久久久| 国产精品成人网站| 超级碰碰不卡在线视频| 久久久蜜桃一区二区人| 色哟哟欧美精品| 国产精品一区二区三区免费观看| 精品1卡二卡三卡四卡老狼| 涩涩视频在线观看免费| 北条麻妃在线一区二区免费播放| 国产在线播精品第三| 欧美日韩国产123区| 亚洲一区二区三区xxx视频| 午夜xxxxx| 欧美 日韩 国产 精品| 亚洲福利天堂| 26uuu亚洲综合色| 丝袜美腿亚洲一区二区| 日本一二三区视频在线| 久久久久久少妇| 粉嫩av一区二区三区四区五区 | 日韩国产美国| 国产精品6666| 伊人久久精品| 国产免费成人在线视频| 中文字幕在线精品| 中文字幕中文字幕在线中一区高清| 毛片久久久久久| 午夜伦理在线| 久久一日本道色综合久久| 91国在线观看| 草莓视频一区| 亚洲色图100p| 国产精品偷拍| 成人午夜视频福利| 这里只有精品丝袜| 无码人妻丰满熟妇区毛片18| 一级做a爰片久久毛片16| 在线一级成人| 亚洲国产精品影院| 亚洲伊人第一页| 久久97人妻无码一区二区三区| 成人黄色理论片| 亚洲女爱视频在线| 亚洲一区亚洲二区亚洲三区| 日韩黄色免费观看| 日韩高清在线免费观看| 欧美日韩中文字幕综合视频| 久久久久成人精品免费播放动漫| 在线视频 中文字幕| 黑丝一区二区| 亚洲欧美国产另类| 欧美色图另类小说| 欧美黄色小说| 男人的天堂久久精品| 中文字幕精品一区久久久久| 国产成人无码精品久久久性色| 天天躁日日躁狠狠躁伊人| 久久男女视频| 美女福利精品视频| 国产精品成人一区二区三区电影毛片 | 成人欧美一区二区三区的电影| 亚洲丝袜制服诱惑| 噜噜噜噜噜久久久久久91| 国产精品女人久久久| 狠狠色丁香久久综合频道| 亚洲福利视频在线| 亚洲最大天堂网| 久久人体大尺度| 亚洲三级在线看| 日韩av电影免费观看| 国产三级按摩推拿按摩| 久久久久久婷| 欧美亚洲另类视频| 国产美女www| 亚洲影院在线| 久久午夜a级毛片| 无码少妇精品一区二区免费动态| 99re8这里有精品热视频8在线| 欧美日韩在线播放一区| 加勒比成人在线| 美女扒开腿让男人桶爽久久软| 中文字幕av免费专区久久| 欧美日韩系列| 色就是色亚洲色图| 成人av在线资源| 精品一区在线播放| 国产专区在线播放| 中文字幕精品—区二区四季| 四虎影视永久免费在线观看一区二区三区| 韩国av电影在线观看| 国产伦精品一区二区三区在线观看| 91禁外国网站| 中文字幕免费在线观看视频| 欧美午夜不卡| 7777免费精品视频| av资源免费观看| 天堂久久一区二区三区| 欧洲成人午夜免费大片| 在线视频1卡二卡三卡| 精品亚洲porn| 国产乱码精品一区二区三区卡| 免费看男男www网站入口在线| 久久老女人爱爱| 91精品国产综合久久久久久久久| 免费黄色av片| 精品综合久久久久久8888| 99视频日韩| 黄色在线网站| 国产精品久久久久久一区二区三区 | 黄视频在线播放| 日韩毛片高清在线播放| 黄色一级大片免费| a'aaa级片在线观看| 在线播放一区二区三区| 亚洲国产日韩在线一区| 久久夜色精品国产噜噜av小说|