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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Django详解

發布時間:2024/3/26 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Django

  • 軟件框架
  • 一個公司是由公司中的各部部門來組成的,每一個部門擁有特定的職能,部門與部門之間通過相互的配合來完成讓公司運轉起來。
    一個軟件框架是由其中各個軟件模塊組成的,每一個模塊都有特定的功能,模塊與模塊之間通過相互配合來完成軟件的開發。
    軟件框架是針對某一類軟件設計問題而產生的。
    2. MVC框架
    2.1 MVC簡介
    MVC最初是由施樂公司旗下的帕羅奧多研究中心中的一位研究人員給 smalltalk語言發明的一中軟件設計模式。
    MVC的產生理念: 分工。讓專門的人去做專門的事。
    MVC的核心思想: 解耦。

    MVC的思想被應用在的web開發的方面,產生了web MVC框架。

    2.2 Web MVC框架模塊功能
    通過瀏覽器注冊用戶信息。

    M:Model,模型, 和數據庫進行交互。
    V:View,視圖, 產生html頁面。
    C:Controller,控制器, 接收請求,進行處理,與M和V進行交互,返回應答。
    3. Django框架
    3.1 簡介
    Django是勞倫斯出版集團的開發人員為開發新聞內容網站而設計出來的一個軟件,它遵循MVC思想,但是有自己的一個名詞,叫做MVT。
    Django遵循快速開發和DRY原則。Do not repeat yourself.不要自己去重復一些工作。
    3.2 MVT各部分功能

    M:Model,模型, 和MVC中M功能相同,和數據庫進行交互。
    V:View,視圖, 和MVC中C功能相同,接收請求,進行處理,與M和T進行交互,返回應答。
    T:Template,模板, 和MVC中V功能相同,產生html頁面。
    4. 虛擬環境
    4.1 概念

    之前安裝python包的命令: sudo pip3 install 包名
    包的安裝路徑:/usr/local/lib/python3.5/dist-packages
    在同一個python環境中安裝同一個包的不同版本,后安裝的包會把原來安裝的包覆蓋掉。這樣,如果同一臺機器上兩個項目依賴于相同包的不同版本,則會導致一些項目運行失敗。
    解決的方案就是:虛擬環境。
    虛擬環境是真實python環境的復制版本。
    在虛擬環境中使用的python是復制的python,安裝python包也是安裝在復制的python中。
    4.2 安裝和配置
    安裝虛擬環境的命令:
    1)sudo pip install virtualenv #安裝虛擬環境
    2)sudo pip install virtualenvwrapper #安裝虛擬環境擴展包
    3)編輯家目錄下面的.bashrc文件,添加下面兩行。
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
    4)使用source .bashrc使其生效一下。
    4.3 使用
    創建虛擬環境命令:
    mkvirtualenv 虛擬環境名
    創建python3虛擬環境:
    mkvirtualenv -p python3 bj11_py3
    進入虛擬環境工作:
    workon 虛擬環境名
    查看機器上有多少個虛擬環境:
    workon 空格 + 兩個tab鍵
    退出虛擬環境:
    deactivate
    刪除虛擬環境:
    rmvirtualenv 虛擬環境名
    虛擬環境下安裝包的命令:
    pip install 包名
    注意:不能使用sudo pip install 包名,這個命令會把包安裝到真實的主機環境上而不是安裝到虛擬環境中。
    查看虛擬環境中安裝了哪些python包:
    pip list
    pip freeze
    安裝django環境:
    pip install django==1.8.2
    拓展:
    apt-get install 軟件
    pip install python包名
    5. 項目創建
    5.1 創建Django項目
    命令:django-admin startproject 項目名
    注意:創建應用必須先進入虛擬環境。
    項目目錄如下:

    init.py: 說明test1是一個python包。
    settings.py: 項目的配置文件。
    urls.py: 進行url路由的配置。
    wsgi.py: web服務器和Django交互的入口。
    manage.py: 項目的管理文件。
    5.2 創建Django應用

    一個項目由很多個應用組成的,每一個應用完成一個功能模塊。
    創建應用的命令如下:
    python manage.py startapp 應用名
    注意:創建應用時需要先進入項目目錄。
    應用目錄如下:

    init.py: 說明目錄是一個Python模塊。
    models.py: 寫和數據庫項目的內容, 設計模型類。
    views.py: ,接收請求,進行處理,與M和T進行交互,返回應答。
    定義處理函數,視圖函數。
    tests.py: 寫測試代碼的文件。
    admin.py: 網站后臺管理相關的文件。
    5.3 應用注冊
    建立應用和項目之間的聯系,需要對應用進行注冊。
    修改settings.py中的INSTALLED_APPS配置項。
    5.4 啟動項目
    運行開發web服務器命令:
    python manage.py runserver
    6. 模型類
    6.1 ORM

    django中內嵌了ORM框架,ORM框架可以將類和數據表進行對應起來,只需要通過類和對象就可以對數據表進行操作。
    在Django中主要是設計類:模型類。
    ORM另外一個作用:根據設計的類生成數據庫中的表。
    6.2 模型類設計
    在應用models.py中設計模型類。
    必須繼承與models.Model類。
    1) 設計BookInfo類。
    2) 設計HeroInfo類。
    Models.ForeignKey可以建立兩個模型類之間一對多的關系,django在生成表的時候,就會在多端的表中創建一列作為外鍵,建立兩個表之間一對多的關系。
    6.3 模型類生成表

  • 生成遷移文件
    命令:python manage.py makemigrations
  • 遷移文件是根據模型類生成的。
    2) 執行遷移生成表
    命令:python mange.py migrate
    根據遷移文件生成表。
    生成表名的默認格式:
    應用名_模型類名小寫
    6.4 通過模型類操作數據表
    進入項目shell的命令:
    python manage.py shell
    以下為在相互shell終端中演示的例子:
    首先導入模型類:
    from booktest.models import BookInfo,HeroInfo

  • 向booktest_bookinfo表中插入一條數據。
    b = BookInfo() #定義一個BookInfo類的對象
    b.btitle =‘天龍八部’ #定義b對象的屬性并賦值
    b.bpub_date = date(1990,10,11)
    b.save() #才會將數據保存進數據庫
  • 查詢出booktest_bookinfo表中id為1的數據。
    b = BookInfo.objects.get(id=1)
  • 在上一步的基礎上改變b對應圖書的出版日期。
    b.bpub_date = date(1989,10,21)
    b.save() #才會更新表格中的數據
  • 緊接上一步,刪除b對應的圖書的數據。
    b.delete() #才會刪除
  • 向booktest_heroInfo表中插入一條數據。
    h = HeroInfo()
    h.hname = ‘郭靖’
    h.hgender = False
    h.hcomment = ‘降龍十八掌’
    b2 = BookInfo.objects.get(id=2)
    h.hbook = b2 #給關系屬性賦值,英雄對象所屬的圖書對象
    h.save()
  • 查詢圖書表里面的所有內容。
    BookInfo.objects.all()
    HeroInfo.objects.all()
    6.5 關聯操作
  • 查詢出id為2的圖書中所有英雄人物的信息。
    b = BookInfo.objects.get(id=2)
    b.heroinfo_set.all() #查詢出b圖書中所有英雄人物的信息
  • 后臺管理
  • 本地化
    語言和時區的本地化。
    修改settings.py文件。
  • 創建管理員
    命令:python manage.py createsuperuser
  • 注冊模型類
    在應用下的admin.py中注冊模型類。
    告訴djang框架根據注冊的模型類來生成對應表管理頁面。
    b = BookInfo()
    str(b) str
  • 自定義管理頁面
    自定義模型管理類。模型管理類就是告訴django在生成的管理頁面上顯示哪些內容。
  • 視圖
    在Django中,通過瀏覽器去請求一個頁面時,使用視圖函數來處理這個請求的,視圖函數處理之后,要給瀏覽器返回頁面內容。
    8.1視圖函數的使用
  • 定義視圖函數
    視圖函數定義在views.py中。
    例:
    def index(request):
    #進行處理。。。
    return HttpResponse(‘hello python’)
    視圖函數必須有一個參數request,進行處理之后,需要返回一個HttpResponse的類對象,hello python就是返回給瀏覽器顯示的內容。

  • 進行url配置

    url配置的目的是讓建立url和視圖函數的對應關系。url配置項定義在urlpatterns的列表中,每一個配置項都調用url函數。
    url函數有兩個參數,第一個參數是一個正則表達式,第二個是對應的處理動作。
    配置url時,有兩種語法格式:
    a) url(正則表達式,視圖函數名)
    b) url(正則表達式,include(應用中的urls文件))
    工作中在配置url時,首先在項目的urls.py文件中添加配置項時,并不寫具體的url和視圖函數之間的對應關系,而是包含具體應用的urls.py文件,在應用的urls.py文件中寫url和視圖函數的對應關系。
    8.2 url匹配的過程
    在項目的urls.py文件中包含具體應用的urls.py文件,應用的urls.py文件中寫url和視圖函數的對應關系。

  • 當用戶輸入如http://127.0.0.1:8000/aindex時,去除域名和最前面的/,剩下aindex,拿aindex字符串到項目的urls文件中進行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串繼續到應用的urls文件中進行正則匹配,匹配成功之后執行視圖函數index,index視圖函數返回內容hello python給瀏覽器來顯示。
    9. 模板
    模板不僅僅是一個html文件。
    9.1 模板文件的使用

  • 創建模板文件夾
  • 配置模板目錄
  • 使用模板文件
    a) 加載模板文件
    去模板目錄下面獲取html文件的內容,得到一個模板對象。
    b) 定義模板上下文
    向模板文件傳遞數據。
    c) 模板渲染
    得到一個標準的html內容。
    9.2 給模板文件傳遞數據
    模板變量使用:{{ 模板變量名 }}
    模板代碼段:{%代碼段%}
    for循環:
    {% for i in list %}
    list不為空時執行的邏輯
    {% empty %}
    list為空時執行的邏輯
    {% endfor %}
  • 案例完成
    編碼之前的準備工作:
  • 設計出訪問頁面的url和對應的視圖函數的名字,確定視圖函數的功能。
  • 設計模板文件的名字。
    以下為案例中的簡單設計過程:
  • 完成圖書信息的展示:
    a) 設計url,通過瀏覽器訪問 http://127.0.0.1:8000/books 時顯示圖書信息頁面。
    b) 設計url對應的視圖函數show_books。
    查詢出所有圖書的信息,將這些信息傳遞給模板文件。
    c) 編寫模板文件show_books.html。
    遍歷顯示出每一本圖書的信息。
  • 完成點擊某本圖書時,顯示出圖書里所有英雄信息的頁面。
    a) 設計url,通過訪問http://127.0.0.1:8000/books/數字時顯示對應的英雄信息頁面。
    這里數字指點擊的圖書的id。
    b) 設計對應的視圖函數detail。
    接收圖書的id,根據id查詢出相應的圖書信息,然后查詢出圖書中的所有英雄信息。
    c) 編寫模板文件detail.html。
    模型
  • Django ORM
  • O(objects):類和對象。
    R(Relation):關系,關系數據庫中的表格。
    M(Mapping):映射。
    Django ORM框架的功能:
    a) 建立模型類和表之間的對應關系,允許我們通過面向對象的方式來操作數據庫。
    b) 根據設計的模型類生成數據庫中的表格。
    c) 通過方便的配置就可以進行數據庫的切換。
    2. Django數據庫配置
    2.1 mysql命令回顧
    登錄mysql數據庫:mysql –uroot –p
    查看有哪些數據庫:show databases
    創建數據庫:create database test2 charset=utf8; #切記:指定編碼
    使用數據庫:use test2;
    查看數據庫中的表:show tables;
    2.2 Django配置使用mysql數據庫
    修改settings.py中的DATABASES。

    注意:django框架不會自動幫我們生成mysql數據庫,所以我們需要自己去創建。
    2.3 切換mysql數據庫之后不能啟動服務器
    需要安裝操作mysql數據庫的包,python2環境和python3環境有以下區別。
    a) python2需要安裝mysql-python:
    pip install mysql-python
    b) python3需要安裝pymysql:
    pip install pymysql
    python3中安裝好pymysql,需要在test2/init.py中加如下內容:
    import pymysql
    pymysql.install_as_MySQLdb()
    3. 復習案例

  • 設計模型類并生成表
    a) 設計BookInfo,增加屬性bread和bcomment,另外設置軟刪除標記屬性isDelete。
    b) 設計HeroInfo類,增加軟刪除標記屬性isDelete。
    軟刪除標記:刪除數據時不做真正的刪除,而是把標記數據設置為1表示刪除,目的是防止重要的數據丟失。
  • 編寫視圖函數并配置URL。
    3)創建模板文件。
    拆解功能:
  • 圖書信息展示頁。
    a) 設計url,通過瀏覽器訪問 http://127.0.0.1:8000/index時顯示圖書信息頁面。
    b) 設計url對應的視圖函數index。
    查詢出所有圖書的信息,將這些信息傳遞給模板文件。
    c) 編寫模板文件index.html。
    遍歷顯示出每一本圖書的信息并增加新建和刪除超鏈接。
    2)圖書信息新增。
    a)設計url,通過瀏覽器訪問 http://127.0.0.1:8000/create時向數據庫中新增一條圖書信息。
    b) 設計url對應得視圖函數create。
  • 頁面重定向:服務器不返回頁面,而是告訴瀏覽器再去請求其他的url地址。
    3)圖書信息刪除。
    a)設計url,通過瀏覽器訪問 http://127.0.0.1:8000/delete數字刪除數據庫中對應的一條圖書數據。
    其中數字是點擊的圖書的id。
    b)設計url對應的視圖函數delete。
    獲取圖書的id,進行刪除。
    4. 字段屬性和選項
    4.1 模型類屬性命名限制
    1)不能是python的保留關鍵字。
    2)不允許使用連續的下劃線,這是由django的查詢方式決定的。
    3)定義屬性時需要指定字段類型,通過字段類型的參數指定選項,語法如下:
    屬性名=models.字段類型(選項)
    4.2 字段類型
    使用時需要引入django.db.models包,字段類型如下:
    類型 描述
    AutoField 自動增長的IntegerField,通常不用指定,不指定時Django會自動創建屬性名為id的自動增長屬性。
    BooleanField 布爾字段,值為True或False。
    NullBooleanField 支持Null、True、False三種值。
    CharField(max_length=最大長度) 字符串。參數max_length表示最大字符個數。
    TextField 大文本字段,一般超過4000個字符時使用。
    IntegerField 整數
    DecimalField(max_digits=None, decimal_places=None) 十進制浮點數。參數max_digits表示總位。參數decimal_places表示小數位數。
    FloatField 浮點數。參數同上
    DateField:([auto_now=False, auto_now_add=False]) 日期。
    1)參數auto_now表示每次保存對象時,自動設置該字段為當前時間,用于"最后一次修改"的時間戳,它總是使用當前日期,默認為false。
    2) 參數auto_now_add表示當對象第一次被創建時自動設置當前時間,用于創建的時間戳,它總是使用當前日期,默認為false。
    3)參數auto_now_add和auto_now是相互排斥的,組合將會發生錯誤。
    TimeField 時間,參數同DateField。
    DateTimeField 日期時間,參數同DateField。
    FileField 上傳文件字段。
    ImageField 繼承于FileField,對上傳的內容進行校驗,確保是有效的圖片。
    4.3 選項
    通過選項實現對字段的約束,選項如下:
    選項名 描述
    default 默認值。設置默認值。
    primary_key 若為True,則該字段會成為模型的主鍵字段,默認值是False,一般作為AutoField的選項使用。
    unique 如果為True, 這個字段在表中必須有唯一值,默認值是False。
    db_index 若值為True, 則在表中會為此字段創建索引,默認值是False。
    db_column 字段的名稱,如果未指定,則使用屬性的名稱。
    null 如果為True,表示允許為空,默認值是False。
    blank 如果為True,則該字段允許為空白,默認值是False。
    對比:null是數據庫范疇的概念,blank是后臺管理頁面表單驗證范疇的。
    經驗:
    當修改模型類之后,如果添加的選項不影響表的結構,則不需要重新做遷移,商品的選項中default和blank不影響表結構。
    參考文檔:
    http://python.usyiyi.cn/translate/django_182/index.html
    5. 查詢
    5.1 mysql的日志文件
    mysql.log是mysql的日志文件,里面記錄的對MySQL數據庫的操作記錄。默認情況下mysql的日志文件沒有產生,需要修改mysql的配置文件,步驟如下:

  • 使用下面的命令打開mysql的配置文件,去除68,69行的注釋,然后保存。
    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    2)重啟mysql服務,就會產生mysql日志文件。
    sudo service mysql restart
    3)打開MySQL的日志文件。
    /var/log/mysql/mysql.log 是mysql日志文件所在的位置。
    使用下面的命令可以實時查看mysql的日志文件:
    sudo tail -f /var/log/mysql/mysql.log
    5.2 查詢函數
    通過模型類.objects屬性可以調用如下函數,實現對模型類對應的數據表的查詢。
    函數名 功能 返回值 說明
    get 返回表中滿足條件的一條且只能有一條數據。 返回值是一個模型類對象。 參數中寫查詢條件。
  • 如果查到多條數據,則拋異常MultipleObjectsReturned。
    2)查詢不到數據,則拋異常:DoesNotExist。
    all 返回模型類對應表格中的所有數據。 返回值是QuerySet類型 查詢集
    filter 返回滿足條件的數據。 返回值是QuerySet類型 參數寫查詢條件。
    exclude 返回不滿足條件的數據。 返回值是QuerySet類型 參數寫查詢條件。
    order_by 對查詢結果進行排序。 返回值是QuerySet類型 參數中寫根據哪些字段進行排序。
    get示例:
    例:查詢圖書id為3的圖書信息。
    all方法示例:
    例:查詢圖書所有信息。
    filter方法示例:
    條件格式:
    模型類屬性名__條件名=值
    查詢圖書評論量為34的圖書的信息:
    a)判等 條件名:exact。
    例:查詢編號為1的圖書。
    BookInfo.objects.get(id=1)
    b)模糊查詢
    例:查詢書名包含’傳’的圖書。contains
    BookInfo.objects.filter(btitle__contains=‘傳’)
    例:查詢書名以’部’結尾的圖書 endswith 開頭:startswith
    BookInfo.objects.filter(btitle__endswith=‘部’)
    c)空查詢 isnull
    例:查詢書名不為空的圖書。isnull
    select * from booktest_bookinfo where btitle is not null;
    BookInfo.objects.filter(btitle__isnull=False)
    d)范圍查詢 in
    例:查詢id為1或3或5的圖書。
    select * from booktest_bookinfo where id in (1,3,5);
    BookInfo.objects.filter(id__in = [1,3,5])
    e)比較查詢 gt(greate than) lt(less than) gte(equal) 大于等于
    lte 小于等于
    例:查詢id大于3的圖書。
    Select * from booktest_bookinfo where id>3;
    BookInfo.objects.filter(id__gt=3)
    f)日期查詢
    例:查詢1980年發表的圖書。
    BookInfo.objects.filter(bpub_date__year=1980)
    例:查詢1980年1月1日后發表的圖書。
    from datetime import date
    BookInfo.objects.filter(bpub_date__gt=date(1980,1,1))
    exclude方法示例:
    例:查詢id不為3的圖書信息。
    BookInfo.objects.exclude(id=3)
    order_by方法示例:
    作用:進行查詢結果進行排序。
    例:查詢所有圖書的信息,按照id從小到大進行排序。
    BookInfo.objects.all().order_by(‘id’)
    例:查詢所有圖書的信息,按照id從大到小進行排序。
    BookInfo.objects.all().order_by(’-id’)
    例:把id大于3的圖書信息按閱讀量從大到小排序顯示。
    BookInfo.objects.filter(id__gt=3).order_by(’-bread’)
  • F對象
    作用:用于類屬性之間的比較。
    使用之前需要先導入:
    from django.db.models import F
    例:查詢圖書閱讀量大于評論量圖書信息。
    BookInfo.objects.filter(bread__gt=F(‘bcomment’))
    例:查詢圖書閱讀量大于2倍評論量圖書信息。
    BookInfo.objects.filter(bread__gt=F(‘bcomment’)*2)
  • Q對象
    作用:用于查詢時條件之間的邏輯關系。not and or,可以對Q對象進行&|~操作。
    使用之前需要先導入:
    from django.db.models import Q
    例:查詢id大于3且閱讀量大于30的圖書的信息。
    BookInfo.objects.filter(id__gt=3, bread__gt=30)
    BookInfo.objects.filter(Q(id__gt=3)&Q(bread__gt=30))
    例:查詢id大于3或者閱讀量大于30的圖書的信息。
    BookInfo.objects.filter(Q(id__gt=3)|Q(bread__gt=30))
    例:查詢id不等于3圖書的信息。
    BookInfo.objects.filter(~Q(id=3))
  • 聚合函數
    作用:對查詢結果進行聚合操作。
    sum count avg max min
    aggregate:調用這個函數來使用聚合。 返回值是一個字典
    使用前需先導入聚合類:
    from django.db.models import Sum,Count,Max,Min,Avg
    例:查詢所有圖書的數目。
    BookInfo.objects.all().aggregate(Count(‘id’))
    {‘id__count’: 5}
    例:查詢所有圖書閱讀量的總和。
    BookInfo.objects.aggregate(Sum(‘bread’))
    {‘bread__sum’: 126}
    count函數 返回值是一個數字
    作用:統計滿足條件數據的數目。
    例:統計所有圖書的數目。
    BookInfo.objects.all().count()
    BookInfo.objects.count()
    例:統計id大于3的所有圖書的數目。
    BookInfo.objects.filter(id__gt=3).count()
    小結:
  • 參考文檔:
    http://python.usyiyi.cn/translate/django_182/ref/models/querysets.html
    9. 查詢集
    all, filter, exclude, order_by調用這些函數會產生一個查詢集,QuerySet類對象可以繼續調用上面的所有函數。
    9.1 查詢集特性
    1) 惰性查詢:只有在實際使用查詢集中的數據的時候才會發生對數據庫的真正查詢。
    2) 緩存:當使用的是同一個查詢集時,第一次使用的時候會發生實際數據庫的查詢,然后把結果緩存起來,之后再使用這個查詢集時,使用的是緩存中的結果。
    9.2 限制查詢集
    可以對一個查詢集進行取下標或者切片操作來限制查詢集的結果。
    對一個查詢集進行切片操作會產生一個新的查詢集,下標不允許為負數。
    取出查詢集第一條數據的兩種方式:
    方式 說明
    b[0] 如果b[0]不存在,會拋出IndexError異常
    b[0:1].get() 如果b[0:1].get()不存在,會拋出DoesNotExist異常。
    exists:判斷一個查詢集中是否有數據。True False
    10. 模型類關系
    1) 一對多關系
    例:圖書類-英雄類
    models.ForeignKey() 定義在多的類中。
    2) 多對多關系
    例:新聞類-新聞類型類 體育新聞 國際新聞
    models.ManyToManyField() 定義在哪個類中都可以。
    3) 一對一關系
    例:員工基本信息類-員工詳細信息類. 員工工號
    models.OneToOneField定義在哪個類中都可以。
    11. 關聯查詢(一對多)
    11.1 查詢和對象關聯的數據
    在一對多關系中,一對應的類我們把它叫做一類,多對應的那個類我們把它叫做多類,我們把多類中定義的建立關聯的類屬性叫做關聯屬性。
    例:查詢id為1的圖書關聯的英雄的信息。
    b=BookInfo.objects.get(id=1)
    b.heroinfo_set.all()
    通過模型類查詢:
    HeroInfo.objects.filter(hbook__id=1)
    例:查詢id為1的英雄關聯的圖書信息。
    h = HeroInfo.objects.get(id=1)
    h.hbook
    通過模型類查詢:
    BookInfo.objects.filter(heroinfo__id=1)
    格式:

    由一類的對象查詢多類的時候:
    一類的對象.多類名小寫_set.all() #查詢所用數據
    由多類的對象查詢一類的時候:
    多類的對象.關聯屬性 #查詢多類的對象對應的一類的對象
    由多類的對象查詢一類對象的id時候:
    多類的對象. 關聯屬性_id
    11.2 通過模型類實現關聯查詢

    例:查詢圖書信息,要求圖書關聯的英雄的描述包含’八’。
    BookInfo.objects.filter(heroinfo__hcomment__contains=‘八’)
    例:查詢圖書信息,要求圖書中的英雄的id大于3.
    BookInfo.objects.filter(heroinfo__id__gt=3)
    例:查詢書名為“天龍八部”的所有英雄。
    HeroInfo.objects.filter(hbook__btitle=‘天龍八部’)
    通過多類的條件查詢一類的數據:
    一類名.objects.filter(多類名小寫__多類屬性名__條件名)
    通過一類的條件查詢多類的數據:
    多類名.objects.filter(關聯屬性__一類屬性名__條件名)
    12. 插入、更新和刪除
    調用一個模型類對象的save方法的時候就可以實現對模型類對應數據表的插入和更新。
    調用一個模型類對象的delete方法的時候就可以實現對模型類對應數據表數據的刪除。
    13. 自關聯

    自關聯是一種特殊的一對多的關系。
    案例:顯示廣州市的上級地區和下級地區。
    地區表:id, atitle, aParent_id;
    mysql終端中批量執行sql語句:source areas.sql;
    14. 管理器
    BookInfo.objects.all()->objects是一個什么東西呢?
    答:objects是Django幫我自動生成的管理器對象,通過這個管理器可以實現對數據的查詢。
    objects是models.Manger類的一個對象。自定義管理器之后Django不再幫我們生成默認的objects管理器。
    14.1 自定義模型管理器類

  • 自定義一個管理器類,這個類繼承models.Manger類。
  • 再在具體的模型類里定義一個自定義管理器類的對象。
    14.2 自定義管理器類的應用場景
    1) 改變查詢的結果集。
    比如調用BookInfo.books.all()返回的是沒有刪除的圖書的數據。
    2) 添加額外的方法。
    管理器類中定義一個方法幫我們操作模型類對應的數據表。
    使用self.model()就可以創建一個跟自定義管理器對應的模型類對象。
    小結:
  • 元選項
    Django默認生成的表名:
    應用名小寫_模型類名小寫。
    元選項:
    需要在模型類中定義一個元類Meta,在里面定義一個類屬性db_table就可以指定表名。
  • 視圖

  • 視圖的功能
    接收請求,進行處理,與M和T進行交互,返回應答。
    返回html內容 HttpResponse,也可能重定向 redirect,還可以返回json數據。
  • 視圖函數使用
    2.1 使用
  • 定義視圖函數
    request參數必須有。是一個HttpRequest類型的對象。參數名可以變化,
    但不要更改。
  • 配置url
    建立url和視圖函數之間的對應關系。
    2.2 url配置的過程
  • 在項目的urls文件中包含具體應用的urls文件,在具體應用的urls文件中包含具體url和視圖的對應關系。
  • url配置項是定義在一個名叫urlpatterns的列表中,其中的每一個元素就是一個配置項,每一個配置項都調用url函數。
  • url匹配的過程
  • url:http://127.0.0.1:8000/aindex?a=1

  • 去除域名和后面的參數,剩下/aindex,再把前面的/去掉,剩下aindex
  • 拿aindex先到項目的url.py文件中進行從上到下的匹配,匹配成功之后執行后面對應的處理動作,就是把匹配成功的部分a字符去除,然后拿剩下的部分index到應用的urls.py文件中再進行從上到下的匹配。
  • 如果匹配成功則調用相應的視圖產生內容返回給客戶端。如果匹配失敗則產生404錯誤。
  • 錯誤視圖
    404:找不到頁面,關閉調試模式之后,默認會顯示一個標準的錯誤頁面,如果要顯示自定義的頁面,則需要的templates目錄下面自定義一個404.html文件。
    a) url沒有配置
    b) url配置錯誤
    500: 服務器端的錯誤。
    a) 視圖出錯
    網站開發完成需要關閉調試模式,在settings.py文件中:
    DEBUG=False
    ALLOWED_HOST=[ ‘*’]
  • 捕獲url參數
    進行url匹配時,把所需要的捕獲的部分設置成一個正則表達式組,這樣django框架就會自動把匹配成功后相應組的內容作為參數傳遞給視圖函數。
  • 位置參數
    位置參數,參數名可以隨意指定
  • 關鍵字參數:在位置參數的基礎上給正則表達式組命名即可。
    ?P<組名>
    關鍵字參數,視圖中參數名必須和正則表達式組名一致.
  • 普通登錄案例
  • 顯示出登錄頁面
    a) 設計url,通過瀏覽器訪問 http://127.0.0.1:8000/login 時顯示登錄頁面。
    b) 設計url對應的視圖函數login。
    c) 編寫模板文件login.html。
    url 視圖 模板文件
    /login login login.html
  • 登錄校驗功能
    a) 設計url,點擊登錄頁的登錄按鈕發起請求http://127.0.0.1:8000/login_check時進行登錄校驗。
    b) 設計url對應的視圖函數login_check。
    接收表單提交過來的數據。
    進行登錄校驗,若用戶名密碼正確則跳轉到登錄成功頁。若失敗在跳轉到登錄頁面。
    c) 登錄成功后跳轉到首頁。
    url 視圖 模板文件
    /login_check login_check 無
  • Ajax
    7.1 基本概念
    異步的javascript。在不全部加載某一個頁面部的情況下,對頁面進行局的刷新,ajax請求都在后臺。
    圖片,css文件,js文件都是靜態文件。
  • 發起ajax請求:jquery發起
  • 執行相應的視圖函數,返回json內容
  • 執行相應的回調函數。通過判斷json內容,進行相應處理。
    7.2 Ajax登錄案例
  • 首先分析出請求地址時需要攜帶的參數。
  • 視圖函數處理完成之后,所返回的json的格式。
  • 顯示出登錄頁面
    a) 設計url,通過瀏覽器訪問 http://127.0.0.1:8000/login_ajax 時顯示登錄頁面。
    b) 設計url對應的視圖函數login_ajax。
    c) 編寫模板文件login_ajax.html。
    在里面寫jquery代碼發起ajax請求。
  • 登錄校驗功能
    a) 設計url,點擊登錄頁的登錄按鈕發起請求http://127.0.0.1:8000/login_ajax_check時進行登錄校驗。
    b) 設計url對應的視圖函數login_ajax_check。
    接收post提交過來的數據。
    進行登錄校驗,并返回json內容。 JsonRepsone
    Json格式如下:
    {‘res’:‘1’} #表示登錄成功
    {‘res’:‘0’} #表示登錄失敗
  • 狀態保持
    http協議是無狀態的。下一次去訪問一個頁面時并不知道上一次對這個頁面做了什么。
    8.1 Cookie
  • cookie是由服務器生成,存儲在瀏覽器端的一小段文本信息。
    cookie的特點:

  • 以鍵值對方式進行存儲。
  • 通過瀏覽器訪問一個網站時,會將瀏覽器存儲的跟網站相關的所有cookie信息發送給該網站的服務器。request.COOKIES
  • cookie是基于域名安全的。www.baidu.com www.tudou.com
  • cookie是有過期時間的,如果不指定,默認關閉瀏覽器之后cookie就會過期。
    記住用戶名案例。
    8.2 Session
  • session存儲在服務器端。
    session的特點:

  • session是以鍵值對進行存儲的。
  • session依賴于cookie。唯一的標識碼保存在sessionid cookie中。
  • session也是有過期時間,如果不指定,默認兩周就會過期。
    記住用戶登錄狀態案例。
    8.3 cookie和session的應用場景
    cookie:記住用戶名。安全性要求不高。
    session:涉及到安全性要求比較高的數據。銀行卡賬戶,密碼
    模板
  • 模板的功能
    產生html,控制頁面上展示的內容。模板文件不僅僅是一個html文件。
    模板文件包含兩部分內容:
  • 靜態內容:css,js,html。
  • 動態內容:用于動態去產生一些網頁內容。通過模板語言來產生。
  • 模板文件的使用
    通常是在視圖函數中使用模板產生html內容返回給客戶端。
    a) 加載模板文件 loader.get_template
    獲取模板文件的內容,產生一個模板對象。
    b) 定義模板上下文 RequeseContext
    給模板文件傳遞數據。
    c) 模板渲染產生html頁面內容 render
    用傳遞的數據替換相應的變量,產生一個替換后的標準的html內容。
  • 模板文件加載順序
  • 首先去配置的模板目錄下面去找模板文件。
  • 去INSTALLED_APPS下面的每個應用的templates去找模板文件,前提是應用中必須有templates文件夾。
  • 模板語言
    模板語言簡稱為DTL。(Django Template Language)
    4.1 模板變量
    模板變量名是由數字,字母,下劃線和點組成的,不能以下劃線開頭。
    使用模板變量:{{模板變量名}}
    模板變量的解析順序:
    例如:{{ book.btitle }}
  • 首先把book當成一個字典,把btitle當成鍵名,進行取值book[‘btitle’]
  • 把book當成一個對象,把btitle當成屬性,進行取值book.btitle
  • 把book當成一個對象,把btitle當成對象的方法,進行取值book.btitle
    例如:{{book.0}}
  • 首先把book當成一個字典,把0當成鍵名,進行取值book[0]
  • 把book當成一個列表,把0當成下標,進行取值book[0]
    如果解析失敗,則產生內容時用空字符串填充模板變量。
    使用模板變量時,.前面的可能是一個字典,可能是一個對象,還可能是一個列表。
    4.2 模板標簽
    {% 代碼段 %}
    for循環:
    {% for x in 列表 %}

    列表不為空時執行

    {% empty %}

    列表為空時執行

    {% endfor %}
    可以通過{{ forloop.counter }}得到for循環遍歷到了第幾次。
    {% if 條件 %}
    {% elif 條件 %}
    {% else %}
    {% endif %}
    關系比較操作符:> < >= <= == !=
    注意:進行比較操作時,比較操作符兩邊必須有空格。
    邏輯運算:not and or
    4.3 過濾器
    過濾器用于對模板變量進行操作。
    date:改變日期的顯示格式。
    length:求長度。字符串,列表.
    default:設置模板變量的默認值。
    格式:模板變量|過濾器:參數
    自定義過濾器。
    自定義的過濾器函數,至少有一個參數,最多兩個
    參考資料:(模板標簽和內置過濾器)
    http://python.usyiyi.cn/documents/django_182/ref/templates/builtins.html
    4.4 模板注釋
    單行注釋:{# 注釋內容 #}
    多行注釋:{% comment %}
    注釋內容
    {% endcomment %}
  • 模板繼承
    模板繼承也是為了重用html頁面內容。
  • 在父模板里可以定義塊,使用標簽:
    {% block 塊名 %}
    塊中間可以寫內容,也可以不寫
    {% endblock 塊名%}
    子模板去繼承父模板之后,可以重寫父模板中的某一塊的內容。
    繼承格式:{% extends 父模板文件路徑%}
    {% block 塊名 %}
    {{ block.super}} #獲取父模板中塊的默認內容
    重寫的內容
    {% endblock 塊名%}
    6. html轉義
    編輯商品詳情信息,數據表中保存的是html內容。
    在模板上下文中的html標記默認是會被轉義的。
    小于號< 轉換為<
    大于號> 轉換為>
    單引號’ 轉換為’
    雙引號" 轉換為 "
    與符號& 轉換為 &
    要關閉模板上下文字符串的轉義:可以使用 {{ 模板變量|safe}}
    也可以使用:
    {% autoescape off %}
    模板語言代碼
    {% endautoescape %}
    模板硬編碼中的字符串默認不會經過轉義,如果需要轉義,那需要手動進行轉義。
    7. csrf攻擊
    首先做一個登錄頁,讓用戶輸入用戶名和密碼進行登錄,登錄成功之后跳轉的修改密碼頁面。在修改密碼頁面輸入新密碼,點擊確認按鈕完成密碼修改。
    登錄頁需要一個模板文件login.html.修改密碼頁面也需要一個模板文件change_pwd.html.
    顯示登錄頁的視圖login,驗證登錄的視圖login_check,顯示發帖頁的視圖change_pwd,處理修改密碼的視圖change_pwd_action.
    加功能:
    a)只有用戶登錄之后才可以進行修改密碼操作。
    登錄裝飾器函數。

    案例流程圖:

    django防止csrf的方式:

  • 默認打開csrf中間件。
  • 表單post提交數據時加上{% csrf_token %}標簽。
    防御原理:
  • 渲染模板文件時在頁面生成一個名字叫做csrfmiddlewaretoken的隱藏域。
  • 服務器交給瀏覽器保存一個名字為csrftoken的cookie信息。
  • 提交表單時,兩個值都會發給服務器,服務器進行比對,如果一樣,則csrf驗證通過,否則失敗。
  • 驗證碼
    在用戶注冊、登錄頁面,為了防止暴力請求,可以加入驗證碼功能,如果驗證碼錯誤,則不需要繼續處理,可以減輕業務服務器、數據庫服務器的壓力。
  • 反向解析
    當某一個url配置的地址發生變化時,頁面上使用反向解析生成地址的位置不需要發生變化。
    根據url 正則表達式的配置動態的生成url。
    在項目urls中包含具體應用的urls文件時指定namespace;
  • 在應用的urls中配置是指定name;

    在模板文件中使用時,格式如下:
    {% url ‘namespace名字:name’ %} 例如{% url ‘booktest:fan2’%}
    帶位置參數:
    {% url ‘namespace名字:name’ 參數 %} 例如{% url ‘booktest:fan2’ 1%}
    帶關鍵字參數:
    {% url ‘namespace名字:name’ 關鍵字參數 %} 例如{% url ‘booktest:fan2’ id=1 %}
    在重定向的時候使用反向解析:
    from django.core.urlresolvers import reverse
    無參數:
    reverse(‘namespace名字:name名字’)
    如果有位置參數
    reverse(‘namespace名字:name名字’, args = 位置參數元組)
    如果有關鍵字參數
    reverse(‘namespace名字:name名字’, kwargs=字典)
    其他技術

  • 靜態文件
    1.1 使用
    在 網頁使用的css文件,js文件和圖片叫做靜態文件。
  • 新建靜態文件夾 static。

  • 配置靜態文件所在的物理目錄。Settings.py

  • STATIC_URL設置訪問靜態文件對應的url。
    STATICFILES_DIRS設置靜態文件所在的物理目錄。
    動態生成靜態文件的路徑。
    1.2 加載目錄
    STATICFILES_FINDERS=(‘django.contrib.staticfiles.finders.FileSystemFinder’, ‘django.contrib.staticfiles.finders.AppDirectoriesFinder’)
    2. 中間件
    中間件函數是django框架給我們預留的函數接口,讓我們可以干預請求和應答的過程。

    2.1 獲取瀏覽器端的ip地址
    使用request對象的META屬性:request.META[‘REMOTE_ADDR’]
    2.2 使用中間件

  • 新建middleware.py文件。

  • 定義中間件類。

  • 在類中定義中間件預留函數。
    init:服務器響應第一個請求的時候調用。
    process_request:是在產生request對象,進行url匹配之前調用。
    process_view:是url匹配之后,調用視圖函數之前。
    process_response:視圖函數調用之后,內容返回給瀏覽器之前。
    process_exception:視圖函數出現異常,會調用這個函數。
    如果注冊的多個中間件類中包含process_exception函數的時候,調用的順序跟注冊的順序是相反的。
    3) 注冊中間件類。

  • Admin后臺管理
    3.1 使用
  • 本地化。語言和時區本地化。
  • 創建超級管理員。
    python mange.py createsuperuser
  • 注冊模型類。
  • 自定義管理頁面。
    自定義模型管理類。
    注冊模型類的時候給register函數添加第二個參數,就是自定義模型管理類的名字。
    3.2 模型管理類相關屬性
  • 列表頁相關的選項。
  • 編輯頁相關的選項。
  • 上傳圖片
    商品銷售網站。
    4.1 配置上傳文件保存目錄
  • 新建上傳文件保存目錄。

  • 配置上傳文件保存目錄。

  • 4.2 后臺管理頁面上傳圖片

  • 設計模型類。

  • 遷移生成表格。

  • 注冊模型類。
    4.3 用戶自定義頁面上傳圖片

  • 定義用戶上傳圖片的頁面并顯示,是一個自定義的表單。

  • 定義接收上傳文件的視圖函數。
    request對象有一個FILES的屬性,類似于字典,通過request.FILES可以獲取上傳文件的處理對象。
    在django中,上傳文件不大于2.5M,文件放在內存中。上傳文件大于2.5M,文件內容寫到一個臨時文件中。
    Django處理上傳文件的兩個類:
    FILE_UPLOAD_HANDLERS= (“django.core.files.uploadhandler.MemoryFileUploadHandler”,
    “django.core.files.uploadhandler.TemporaryFileUploadHandler”)
    上傳圖片參考資料:

  • http://python.usyiyi.cn/documents/django_182/topics/http/file-uploads.html
  • http://python.usyiyi.cn/documents/django_182/ref/files/uploads.html#django.core.files.uploadedfile.UploadedFile
  • 分頁
    查詢出所有省級地區的信息,顯示在頁面上。
    AeroInfo.objects.filter(aParent__isnull = True)
  • 查詢出所有省級地區的信息。
  • 按每頁顯示10條信息進行分頁,默認顯示第一頁的信息,下面并顯示出頁碼。
  • 點擊i頁鏈接的時候,就顯示第i頁的省級地區信息。
    from django.core.paginator import Paginator
    paginator = Paginator(areas, 10) #按每頁10條數據進行分頁
    Paginator類對象的屬性:
    屬性名 說明
    num_pages 返回分頁之后的總頁數
    page_range 返回分頁后頁碼的列表
    Paginator類對象的方法:
    方法名 說明
    page(self, number) 返回第number頁的Page類實例對象
  • Page類對象的屬性:
    屬性名 說明
    number 返回當前頁的頁碼
    object_list 返回包含當前頁的數據的查詢集
    paginator 返回對應的Paginator類對象

    Page類對象的方法:
    屬性名 說明
    has_previous 判斷當前頁是否有前一頁
    has_next 判斷當前頁是否有下一頁
    previous_page_number 返回前一頁的頁碼
    next_page_number 返回下一頁的頁碼
    分頁參考資料:
    http://python.usyiyi.cn/translate/django_182/topics/pagination.html
    6. 省市縣選擇案例

  • 顯示省地區信息。
    $.get(’/prov’, function(data){
    })
  • 省改變時在對應的下拉列表框中顯示下級市的信息。
    $.get(’/city?pid=’+pid, function(data){
    })
    request.GET.get(‘pid’)
    或者:
    .get(′/city′+.get('/city'+.get(/city+(this).val(), function(data){
    })
  • 市改變時在對應的下拉列表框中顯示下級縣的信息。
    $.get(’/dis?pid=’+pid, function(data){
    })
    或者:
    .get(′/dis′+.get('/dis'+.get(/dis+(this).val(), function(data){
    })
  • 總結

    以上是生活随笔為你收集整理的Django详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    久久综合色一综合色88 | 欧美国产不卡 | 亚洲 欧洲 国产 精品 | 日韩成片| 一本一本久久a久久精品牛牛影视 | 欧美有色 | 91免费网站在线观看 | 欧美午夜一区二区福利视频 | 一本到视频在线观看 | 免费色视频在线 | 免费日韩视 | www久| 99电影456麻豆 | 91视频免费看片 | 色综合网| 国产黄色片在线免费观看 | 日本h视频在线观看 | 中文字幕av有码 | 青青草国产精品视频 | 亚洲人在线7777777精品 | 狠狠的干狠狠的操 | 爱爱一区| 亚洲黄色在线观看 | 美州a亚洲一视本频v色道 | 久草视频网| 中文字幕在线观看国产 | 日本精品一二区 | 久久精品毛片 | 一区二区在线不卡 | 久久九九网站 | 日韩成人不卡 | www.玖玖玖 | 日韩高清激情 | 91日韩精品一区 | 久久免费视频播放 | 91精品在线免费观看 | 99热播精品| 国产高清久久久 | 日韩一级片大全 | 国产精品午夜av | 免费韩国av | 国产精品久久一区二区三区不卡 | www.久草视频| 精品国产伦一区二区三区免费 | 天堂va在线高清一区 | 日韩中文字幕视频在线 | 国产原厂视频在线观看 | 成片人卡1卡2卡3手机免费看 | 日日夜夜精品 | 中文字幕影片免费在线观看 | 国产亚洲人成网站在线观看 | 天天操人 | 激情网在线视频 | 国产精品久久精品国产 | 黄色成人av| 日本不卡一区二区三区在线观看 | 深夜免费福利视频 | 香蕉视频在线播放 | 91人人爽久久涩噜噜噜 | 99精品成人 | 黄网av在线| 狠狠综合久久 | 国产色黄网站 | 视频精品一区二区三区 | 51久久夜色精品国产麻豆 | 成 人 黄 色 视频播放1 | 久久成人国产精品一区二区 | 国产日产精品久久久久快鸭 | 在线观看免费高清视频大全追剧 | 欧美日韩在线视频观看 | 国产探花视频在线播放 | 超碰人人在 | 一区二区三区动漫 | 亚洲精品美女在线观看 | 久久久久久久久久久久久久电影 | 久久99在线 | 日韩丝袜在线观看 | 成人午夜电影久久影院 | 免费观看久久 | 欧美一区免费在线观看 | 亚州精品视频 | 香蕉一区| 精品欧美在线视频 | 九九热免费在线视频 | 久久成人资源 | 日韩欧美视频在线观看免费 | 日韩一二三区不卡 | 伊人宗合网 | 色婷婷狠狠五月综合天色拍 | 五月天婷亚洲天综合网精品偷 | 97夜夜澡人人双人人人喊 | 中文字幕美女免费在线 | 激情视频91 | 欧美大荫蒂xxx | 日韩免费在线观看视频 | 日本中文乱码卡一卡二新区 | 蜜臀久久99精品久久久酒店新书 | 日韩最新在线 | 成人三级网址 | 欧美片网站yy | 91九色精品国产 | 97香蕉久久国产在线观看 | 成 人 黄 色 视频播放1 | 日韩在线观看中文 | 久草视频在线观 | 日本色小说视频 | 91亚洲精品国偷拍 | 久久专区 | 国产一级二级av | 国产高清中文字幕 | 久久理论片| 在线观看网站黄 | 看黄色91 | 久久人人插 | 国产明星视频三级a三级点| 亚洲四虎在线 | 欧美亚洲另类在线视频 | 夜夜夜夜操 | 在线视频你懂得 | 国产成人免费在线观看 | 国产午夜精品福利视频 | 日韩视频一区二区 | 97色婷婷| av片子在线观看 | 91精品视频在线观看免费 | 69视频永久免费观看 | 欧美日韩不卡一区二区 | 99精品视频精品精品视频 | www色片 | 亚洲欧洲日韩在线观看 | 九九免费在线视频 | 色噜噜日韩精品欧美一区二区 | 91视频首页| 久久99电影 | 亚洲不卡av一区二区三区 | 久久婷婷激情 | 中文字幕中文字幕 | 一个色综合网站 | 久久久久一区二区三区 | 久久国产精品久久久久 | 99久精品 | 欧美做受69 | 一本大道久久精品懂色aⅴ 五月婷社区 | 97超碰在线久草超碰在线观看 | 国产一区二区三区黄 | 婷婷av综合 | 午夜久久久久久久 | 亚洲欧美日韩精品久久久 | 免费看短| 亚洲视频在线视频 | 精品国产乱码 | 一区二区视频在线播放 | 91麻豆精品国产午夜天堂 | 亚洲一区二区高潮无套美女 | 在线视频你懂 | 亚洲在线黄色 | 国产va精品免费观看 | 视频在线观看国产 | 99精品在线免费视频 | 中文字幕一区二区三区在线播放 | 国产系列在线观看 | 一级黄色免费网站 | 国内精品在线看 | 亚洲一区二区精品视频 | 欧美亚洲国产一卡 | 96久久 | 国产视频18 | 中文不卡视频在线 | 中文字幕日韩电影 | 日韩性xxx| 国产免费久久av | 天天操夜夜爱 | 99国产精品免费网站 | 四虎永久精品在线 | 黄色国产精品 | 亚洲女同videos | 天堂av高清 | 午夜精品久久久久久久99 | 91精品在线视频观看 | 欧美福利片在线观看 | 国产伦精品一区二区三区无广告 | 最新中文字幕在线观看视频 | 2023国产精品自产拍在线观看 | 91传媒免费在线观看 | 久久久久久久久久网 | 日本精品久久久一区二区三区 | 亚洲欧美国产视频 | 超碰.com| japanesexxxhd奶水| 狠狠操影视 | 日本mv大片欧洲mv大片 | 亚洲人成影院在线 | 成人中文字幕av | 久久电影中文字幕视频 | 久久久亚洲成人 | avav片| av中文字幕在线播放 | 亚洲一区av | 欧美日一级片 | 成人国产精品一区二区 | 丁香六月婷婷 | 在线观看亚洲国产精品 | 天天艹 | 欧美日韩不卡一区二区三区 | 波多野结衣视频一区二区 | 97视频中文字幕 | 精品国产诱惑 | av丝袜美腿| 亚洲乱亚洲乱妇 | 麻豆播放 | 亚洲国产网站 | 国产欧美精品一区二区三区四区 | 国产在线日韩 | 97成人精品视频在线播放 | 一区二区av | 国产资源网站 | 国产亚洲高清视频 | 国产精品一区二区三区四区在线观看 | 午夜久草 | 日韩电影在线观看中文字幕 | 亚洲黄色在线免费观看 | 狠狠干夜夜爽 | 国产99久久久精品 | 国产精品网址在线观看 | 久草在线中文视频 | 亚洲精品国产精品久久99 | 久久久久久国产精品免费 | 国产精品一区二区久久精品爱微奶 | 国产91精品欧美 | 国产精品短视频 | 亚洲伊人网在线观看 | 久久a v视频 | 国产精品1区 | 国产成人综合精品 | 日韩精品久久久久久久电影99爱 | 粉嫩av一区二区三区四区 | 久久精品99视频 | 国产一级二级三级在线观看 | 伊人影院av | 免费合欢视频成人app | 国产午夜在线观看视频 | 亚洲免费一级 | 最近中文字幕完整高清 | 黄色免费大片 | 日韩免费在线一区 | 亚洲国产成人在线 | 国产特级毛片aaaaaaa高清 | 欧美日韩1区2区 | 亚欧洲精品视频在线观看 | 九九热免费视频在线观看 | 91日韩精品一区 | 日韩在线中文字幕视频 | 亚洲电影第一页av | 人人射 | 欧美精品乱码久久久久 | 超碰电影在线观看 | 在线亚洲人成电影网站色www | 婷婷综合五月天 | 日韩网站在线播放 | 蜜臀av免费一区二区三区 | 一区二区三区四区精品视频 | 欧美乱淫视频 | 婷婷六月久久 | 精品久久久久久久久久久院品网 | 国产精品成人在线 | 亚洲精品视频免费 | 国产成人精品国内自产拍免费看 | 欧美精品免费视频 | av黄在线播放 | 手机在线欧美 | 国产黄色免费看 | 久久久久女人精品毛片九一 | 久久爱影视i | 狠狠色狠狠色综合日日小说 | 免费观看一级特黄欧美大片 | 狠狠干网 | 国产在线一区观看 | 欧美精品国产综合久久 | 最新日韩电影 | 中文字幕在线观看国产 | 免费成人在线观看视频 | 国产高清免费 | 国产aaa大片 | 日韩激情视频 | 国产精品日韩在线 | 69精品久久 | 中文字幕在线字幕中文 | 国产色在线观看 | 国产亚洲在线观看 | 国产精品亚洲片夜色在线 | 五月婷香蕉久色在线看 | 99视频精品全部免费 在线 | 日韩精品欧美视频 | 国产精品99精品久久免费 | 国产精品久久99综合免费观看尤物 | 四虎影视国产精品免费久久 | 99午夜| 玖草在线观看 | 久久精品99 | 久草电影免费在线观看 | 日本九九视频 | av免费在线播放 | 国产中出在线观看 | 天天艹天天 | 亚洲aⅴ一区二区三区 | 国产精品18久久久久白浆 | 欧美成人亚洲 | 99久久精品国 | 涩涩网站免费 | 毛片99| 91免费高清在线观看 | 九九免费精品视频在线观看 | 综合伊人av | 精品国产欧美 | 人人超碰人人 | 精品国产乱码久久久久久久 | 天天操天天色天天射 | 亚州欧美视频 | 午夜精品久久久久久久久久久久久久 | 色综合久久久久久久 | 中文字幕资源网 | 五月天中文字幕mv在线 | 曰韩精品 | 最新日韩精品 | 91在线视频观看 | 国产视频精品久久 | 久久综合久久88 | 国产成人亚洲在线观看 | 欧美日韩视频在线观看一区二区 | 中文字幕在线视频免费播放 | 热99在线视频 | 国产精品久久久久9999吃药 | 中文资源在线播放 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天曰 | 国产成人精品女人久久久 | 人人插人人草 | 国产精品福利在线 | 欧美a视频在线观看 | 亚洲精品美女在线 | 成人欧美在线 | 精品国产伦一区二区三区观看方式 | 国产成人精品亚洲精品 | 成人app在线免费观看 | www国产亚洲精品 | 伊人开心激情 | 激情av资源 | 四虎国产精品永久在线国在线 | 天天操操操操操操 | 91九色在线 | 国产视频久久久久 | 久久av电影 | 狠狠躁日日躁狂躁夜夜躁 | 干亚洲少妇 | 成人黄色短片 | 国产精品爽爽爽 | 日韩在线视频免费观看 | 欧美久久久久久久久久久久久 | 日韩精品一区二区三区免费观看视频 | 91精品国产成 | 天天夜夜狠狠操 | 日韩专区视频 | 狠狠躁夜夜躁人人爽视频 | 久久久久久久久久久免费 | 97免费视频在线 | 亚洲在线视频播放 | 欧美乱熟臀69xxxxxx | 亚洲黄色av网址 | 中文字幕在线观看视频一区 | 亚洲va男人天堂 | 在线黄色国产电影 | 五月综合激情婷婷 | 日韩精品视频免费看 | 人人爽人人香蕉 | 欧美日韩xxxxx | 欧美激情视频一区二区三区免费 | 91亚洲网 | 伊人狠狠操 | 六月色 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 国产视频九色蝌蚪 | 99精品偷拍视频一区二区三区 | 中文字幕在线观看亚洲 | 天天干天天插伊人网 | 黄色av一区| 日韩高清网站 | 黄色免费观看 | 91免费日韩 | 久久三级视频 | 韩国中文三级 | 婷婷中文在线 | 丁香六月在线 | 91激情视频在线播放 | 天天操福利视频 | 黄色网址在线播放 | 午夜 免费 | 日韩两性视频 | www.夜夜操| 久久久天天操 | 色一级片 | 亚洲综合色av | 九九精品视频在线看 | 爱射综合 | 黄色一级免费电影 | 久久av福利 | 久久国产精品久久久久 | 亚洲狠狠操 | 九九热免费视频在线观看 | 成人性生交大片免费观看网站 | 不卡的av在线播放 | 日本不卡一区二区三区在线观看 | 免费黄色看片 | 免费国产一区二区 | 国产精品麻豆免费版 | 免费在线观看成人av | 99色在线播放 | 97av在线 | 久久成人国产精品免费软件 | 中文网丁香综合网 | 99九九免费视频 | 91九色蝌蚪视频在线 | 一区二区三区日韩在线 | 亚洲精品国产精品久久99 | 日本久久高清视频 | 在线精品视频免费观看 | 国内精品国产三级国产aⅴ久 | 亚洲九九九 | 中文字幕av一区二区三区四区 | 国产精品亚洲片夜色在线 | 香蕉在线视频观看 | 午夜免费在线观看 | 国偷自产中文字幕亚洲手机在线 | 伊人天天色 | 婷婷丁香激情网 | 国产精品欧美久久久久久 | 久热色超碰| 免费观看的av | 精品国产1区2区3区 国产欧美精品在线观看 | av成人黄色| 91女人18片女毛片60分钟 | 亚洲成a人片在线观看网站口工 | 国产福利小视频在线 | 草久在线 | 久久免费观看少妇a级毛片 久久久久成人免费 | 久久夜色精品国产欧美一区麻豆 | 成人av免费 | 91观看视频 | 国产精品18久久久久久久网站 | 国产九九在线 | 精选久久 | 国产成人亚洲在线电影 | 久久久国产精品亚洲一区 | 友田真希x88av | 爱爱av在线| 五月天丁香视频 | 99久久精品免费看国产免费软件 | 日日爽天天操 | 在线播放一区 | 日韩精品资源 | 国产五十路毛片 | 国内丰满少妇猛烈精品播放 | 国产色爽 | 国产成人精品综合 | 日韩成人精品在线观看 | 黄色软件在线观看 | 成人午夜电影免费在线观看 | 国内精品久久天天躁人人爽 | 国产va在线观看免费 | 中文字幕在线观看视频一区 | 亚洲精品在线看 | 欧美一级性 | 天堂va在线高清一区 | 免费黄色在线播放 | 人九九精品 | 国产主播99 | 色多多视频在线观看 | 国产色爽| 91在线视频| 亚洲高清精品在线 | 色干综合 | 九九久久精品视频 | 国产精品手机在线 | 国产高清精品在线观看 | 欧美日韩在线观看视频 | 国产xx视频| 午夜精品一区二区三区在线视频 | 日b黄色片 | 日韩欧美国产激情在线播放 | 十八岁免进欧美 | 国产成人免费 | 天天操天天色天天射 | 97免费在线观看 | 正在播放国产一区二区 | 免费视频在线观看网站 | 婷婷深爱网 | 色偷偷88888欧美精品久久 | 国产午夜影院 | 亚洲高清在线 | 中文字幕亚洲在线观看 | 久久综合操 | 亚洲精品av中文字幕在线在线 | 91热爆视频| 国产成人免费观看 | 精品国产乱子伦一区二区 | 日本中文字幕电影在线免费观看 | 色诱亚洲精品久久久久久 | 天天五月天色 | 国内精品二区 | 狠狠色狠狠色合久久伊人 | 国产高清中文字幕 | 日韩在线观看第一页 | 日本久久精 | 丰满少妇一级片 | 免费观看www7722午夜电影 | 九九精品久久久 | av高清在线 | 久久久久久久久久影视 | 美女在线观看网站 | 欧美日韩国产一区二区三区在线观看 | 丁香5月婷婷久久 | 久久精品免费 | 日韩av美女 | 亚洲综合最新在线 | 国内揄拍国内精品 | 久久久久久久久久久综合 | 亚洲精品视频中文字幕 | 欧美一区二区三区在线 | 91精品视频在线免费观看 | 国产视频1区2区3区 久久夜视频 | 日韩精品免费在线视频 | 激情婷婷在线观看 | 久久成人免费电影 | 久久成人免费 | 日日躁夜夜躁xxxxaaaa | 99视频精品免费观看, | 日韩高清片 | 色婷婷狠狠五月综合天色拍 | 狠狠夜夜| 国产精品久久一区二区三区不卡 | 成人国产精品入口 | 91电影福利 | 最新超碰| 色播亚洲婷婷 | 日韩毛片在线播放 | a级片久久久 | 亚洲精品久久久久中文字幕二区 | 欧美日韩色婷婷 | 日韩中文字幕免费在线观看 | 97视频中文字幕 | 日韩精选在线观看 | 久久久五月天 | 国产成人精品综合久久久 | 又黄又爽又无遮挡免费的网站 | www.天天草| 蜜桃视频色 | 一级大片在线观看 | 国产色婷婷精品综合在线手机播放 | 91成人天堂久久成人 | 亚洲最新av网站 | 久久久久久久久久久久国产精品 | 很黄很黄的网站免费的 | 丁香激情综合久久伊人久久 | 国产只有精品 | 欧美男女爱爱视频 | 免费看十八岁美女 | 人人玩人人添人人 | 麻豆影视在线观看 | 免费在线激情视频 | 亚洲欧美精品一区 | 久久成人黄色 | 国产又粗又猛又黄又爽视频 | 欧美a级在线免费观看 | 国产精品视频线看 | 国产理论片在线观看 | 久久成人国产精品一区二区 | 中文字幕2021| 亚洲 中文 在线 精品 | 狠狠躁夜夜av | 97超碰国产在线 | 成人久久电影 | 亚洲国产精品500在线观看 | 欧美日韩高清一区 | 久久久免费高清视频 | 四虎成人av | 在线看日韩 | 啪嗒啪嗒免费观看完整版 | 91av视频免费在线观看 | 午夜免费福利片 | 成人久久18免费 | 国产精品v a免费视频 | 91av在线免费视频 | 91在线色| 亚洲激情一区二区三区 | 日韩国产欧美在线视频 | 伊人国产女 | 久久免费视频4 | 国产成人三级在线播放 | 久久黄色片子 | 国产日韩欧美在线观看 | 日韩黄色免费 | 蜜桃视频在线观看一区 | 久久久伊人网 | 欧美小视频在线 | 最近日本中文字幕 | av3级在线 | 日韩精品网址 | www.天天操| 高清国产午夜精品久久久久久 | 东方av免费在线观看 | 欧美在线资源 | 国产字幕在线看 | 91精彩视频在线观看 | 人人澡av| 蜜桃视频色 | 午夜精品av | 国产丝袜在线 | 97高清视频 | 精品一区二区久久久久久久网站 | 国产美女被啪进深处喷白浆视频 | 日韩精品一区二区三区在线播放 | 亚洲黄电影 | 婷婷五月在线视频 | 久草免费在线视频观看 | 人人模人人爽 | 91在线看黄| 天天射日 | 视频国产一区二区三区 | 亚洲三区在线 | 日韩视频一区二区在线观看 | 国产精品成人免费一区久久羞羞 | 夜夜躁狠狠燥 | 色综合天天色综合 | 久久影视一区二区 | 91超国产| 永久中文字幕 | av大片免费 | 综合国产在线 | 久久九九影院 | 亚洲欧洲日韩在线观看 | 国产免费视频一区二区裸体 | 国产午夜精品免费一区二区三区视频 | 国产免费又爽又刺激在线观看 | 狠狠激情中文字幕 | 91精品在线免费观看 | 亚洲美女精品区人人人人 | 婷婷丁香六月 | 友田真希av| 91大神电影 | 999久久久国产精品 高清av免费观看 | 久久精品理论 | 久久综合五月天婷婷伊人 | 日韩视频在线播放 | 久久精品视 | 国产精品免费观看国产网曝瓜 | 四虎影视国产精品免费久久 | 99福利片 | 欧美精品一区二区三区一线天视频 | 久久久精选 | 免费看污污视频的网站 | 丁香花中文在线免费观看 | 久久99久久99精品免费看小说 | 精品国产一区二区三区免费 | 久久久久国产精品午夜一区 | 亚洲日日日| 国产精品黄色av | 久久影院精品 | 免费进去里的视频 | 992tv人人网tv亚洲精品 | 日韩美女av在线 | 成年人黄色免费网站 | 亚洲天堂社区 | 国产精品99久久久久久有的能看 | 久久免费成人 | 日日激情 | www.夜夜 | 激情深爱五月 | 国产精品18久久久久久久 | 91看片一区二区三区 | 国产成人精品亚洲精品 | 免费又黄又爽视频 | 97天堂网 | 婷婷综合久久 | 久草在线资源观看 | 国内精品免费久久影院 | 六月丁香在线视频 | 色综合久久久久综合体桃花网 | 国产a国产 | 精品一区二区精品 | 欧美日本不卡 | 黄a网站 | 亚洲免费在线观看视频 | 亚洲一区视频免费观看 | 99久久日韩精品免费热麻豆美女 | 有码中文字幕在线观看 | 欧美日韩精品电影 | av中文天堂在线 | 国产黄色免费观看 | 香蕉在线观看视频 | 国产97在线视频 | 久久综合婷婷国产二区高清 | 999久久久国产精品 高清av免费观看 | 成人在线视频免费 | 久久成人午夜 | 久久99国产精品视频 | 天天操操操操操操 | 国产黄免费在线观看 | 亚洲丝袜一区 | av福利第一导航 | 久久精品视频免费播放 | 91精品老司机久久一区啪 | 国产精品视频线看 | 亚洲精选视频免费看 | 免费av电影网站 | 欧美精品亚州精品 | 国产最顶级的黄色片在线免费观看 | 一区二区三区中文字幕在线 | 欧美日韩视频在线 | 999在线精品 | 免费国产在线视频 | 亚洲黄色在线免费观看 | 2019免费中文字幕 | 在线不卡的av| 久久免费99| 网站免费黄色 | 99精品视频播放 | 成年人免费在线 | 综合色天天 | 77国产精品| 九九综合在线 | 美女久久99| 激情开心站 | 一区二区三区在线免费观看视频 | 最近中文字幕在线 | 欧美性大战 | 不卡的av在线播放 | 久久精品视频一 | 97理论片| 99中文字幕视频 | 国产成人精品一区二区三区在线观看 | 日韩高清在线一区二区 | 国产在线观 | 毛片视频网址 | 涩涩资源网 | 国产成人精品一区二区三区在线 | 天天插天天狠 | 成人看片 | 亚洲成aⅴ人在线观看 | 日韩视频三区 | 韩国av永久免费 | 免费看亚洲毛片 | 亚洲香蕉在线观看 | 欧美福利久久 | 免费黄色av | 国产麻豆精品在线观看 | 麻豆传媒视频在线免费观看 | 九九热精 | 在线精品视频免费观看 | 999久久久久久 | 欧美尹人 | 久久日韩精品 | 97超级碰碰 | 99精品久久久久久久久久综合 | 国产精品日韩高清 | 91网在线观看 | 久久久2o19精品 | 最新精品国产 | 在线观看中文字幕dvd播放 | 久久久久久久久久久久亚洲 | 亚洲男男gaygayxxxgv | 成人黄色中文字幕 | 国产午夜精品一区二区三区在线观看 | 综合在线色 | 日韩欧美xxxx | 亚洲蜜桃av| 国产专区免费 | 国产精品免费久久久久影院仙踪林 | 欧美性生活免费 | 欧美孕妇与黑人孕交 | 91视频啊啊啊 | 亚洲视频电影在线 | 天天综合网久久综合网 | 人人射人人射 | 久草视频在 | 黄色大片网| 99热国内精品 | 最近免费中文字幕mv在线视频3 | 欧美色久| 在线免费观看黄色 | 中文字幕视频三区 | 国产一区二区在线影院 | 韩国av不卡 | www黄色av | 在线v片免费观看视频 | 美女国产网站 | 久久激情视频 | 色婷婷88av视频一二三区 | 日韩专区视频 | 亚洲四虎影院 | 伊人狠狠色 | 国产美女精品久久久 | 五月天久久久久久 | 成人一区二区在线观看 | 国产在线欧美日韩 | 亚州av网站大全 | 高潮毛片无遮挡高清免费 | 手机成人av | 国产精品一区二区 91 | 97人人模人人爽人人少妇 | 国产午夜亚洲精品 | 综合色亚洲 | 特级西西www44高清大胆图片 | 91网免费看 | 69性欧美| 色综合 久久精品 | 91精品老司机久久一区啪 | 国产成人精品aaa | 国内99视频 | 欧美日韩精品在线免费观看 | 美女视频黄的免费的 | 伊人手机在线 | 国产专区视频在线观看 | 超碰在线网 | 国产精品网在线观看 | 91精品黄色 | 懂色av一区二区三区蜜臀 | 日韩欧美视频一区 | 色香网 | 天天综合操 | 日韩视频 一区 | 亚洲国产丝袜在线观看 | 蜜桃视频色| 亚洲欧美日韩精品久久久 | 99视频久 | 亚洲高清免费在线 | 美女视频a美女大全免费下载蜜臀 | 欧美色图东方 | 天天干天天射天天爽 | 国产精品久久久久9999 | 日韩在线免费 | 在线观av| 911亚洲精品第一 | 精品uu| 在线成人短视频 | 欧美亚洲国产一卡 | 中文字幕综合在线 | 亚洲精品在线播放视频 | 成人久久久久久久久久 | 中文字幕在线日本 | 久久精选视频 | 日韩一区二区免费播放 | 日本字幕网 | 国偷自产中文字幕亚洲手机在线 | 亚洲视频axxx | 韩国一区二区三区视频 | 亚洲成a人片在线www | 日韩偷拍精品 | 激情视频免费在线 | 99久久久久免费精品国产 | 日本不卡123 | 国产精品18久久久久久首页狼 | 天天操天天干天天摸 | 国产无吗一区二区三区在线欢 | 黄色毛片一级片 | 欧美久久久久久久久久 | 国产精成人品免费观看 | 91毛片在线观看 | 五月婷婷在线视频观看 | 开心丁香婷婷深爱五月 | 人人爽影院 | 超碰在线官网 | 久久综合日| 国产成人久久av | 国产综合精品一区二区三区 | 91.精品高清在线观看 | 欧美日韩国产一区二区在线观看 | av福利免费 | 99视频在线精品国自产拍免费观看 | 激情小说网站亚洲综合网 | 久久夜色精品国产欧美乱 | 日韩在线观看小视频 | 99精品国产一区二区 | 精品高清美女精品国产区 | 国产精品久久电影网 | 成人在线免费观看网站 | 亚洲成人av影片 | 成人在线视频观看 | 国产小视频免费观看 | 高清色免费 | 久久精品一区二 | 天天干天天做 | 免费黄在线观看 | 91成年人视频| 99成人在线视频 | 五月天久久久 | 欧洲高潮三级做爰 | 欧美精品久久久久久久久老牛影院 | 亚洲免费观看在线视频 | 日日夜夜狠狠干 | 国产精品福利在线 | 天天爱天天射天天干天天 | 在线播放你懂 | 激情婷婷av | 91爱爱网址 | 国产视频 亚洲视频 | 99久久久久久久久久 | 在线观看福利网站 | 日日夜夜免费精品视频 | 丝袜足交在线 | 99色人 | 五月开心六月伊人色婷婷 | 99国产精品视频免费观看一公开 | 久久综合色8888 | 在线视频成人 | 成人国产精品av | 色婷婷狠 | 日韩在线免费小视频 | 免费久久99精品国产婷婷六月 | 啪一啪在线 | 国产精品久久久久久久久久 | 中文字幕在线播放日韩 | 综合天天久久 | 不卡国产在线 | 精品国产自 | 在线视频1卡二卡三卡 | 久久久精品成人 | 国精产品999国精产 久久久久 | 探花视频在线版播放免费观看 | 中文字幕婷婷 | 黄色三级久久 | av电影一区 | 欧美日韩国产精品一区二区三区 | 亚洲一区二区三区四区精品 | 欧美淫aaa免费观看 日韩激情免费视频 | 亚洲精品影视 | 丁香激情综合久久伊人久久 | 91黄色免费网站 | 成人av久久 | 久草视频免费在线观看 | 99久久精品国产亚洲 | 成人在线观看你懂的 | 天天天天爱天天躁 | 亚洲欧美日韩在线一区二区 | 高清av免费看 | 性色av香蕉一区二区 | 五月婷婷激情综合 | 美女黄网站视频免费 | 999久久国产| 亚洲高清精品在线 | 天天操夜夜拍 | 精品一区二区三区在线播放 | 在线观看国产91 | 色婷婷亚洲综合 | 午夜久久久久久久久久影院 | 国产日韩在线一区 | 欧美激情综合五月色丁香小说 | 国产精品免费大片视频 | 日日爽夜夜操 | 91麻豆高清视频 | 久久久影视 | 嫩草91影院 | 一区二区三区四区免费视频 | 国产成人三级一区二区在线观看一 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 久久免费在线观看视频 | 国产精品免费看 | 国产精品久久久久久一二三四五 | 亚洲精品国产综合99久久夜夜嗨 | 亚洲国产中文字幕在线观看 | 欧美精品久久久久久久久久 | 韩国av免费观看 | 美国av片在线观看 | 久久欧美综合 | 91桃色在线观看视频 | 国产精品毛片一区二区在线 | 亚洲精品国产品国语在线 | 国产成人在线免费观看 | 91精品久久久久 | 99久国产 | 亚洲综合在线观看视频 | 国产精品久久久久影视 | 久久成人高清 | 欧美日韩国产在线精品 | a天堂最新版中文在线地址 久久99久久精品国产 | 91超在线 | 日一日操一操 | 亚洲精品国产视频 | 国产亚洲精品成人av久久ww | 最新国产一区二区三区 | 欧美性猛片, | wwxxxx日本| 欧美日韩裸体免费视频 | 亚洲欧洲国产日韩精品 | 欧美性天天 | 亚洲情影院 | 日韩精品极品视频 | 欧美一区二区三区在线视频观看 | 日韩欧美在线视频一区二区三区 | 69久久99精品久久久久婷婷 |