Django模板導入和繼承、mysql數據庫導入、單表查詢,第一百零八天

Django模板導入和繼承、mysql數據庫導入、單表查詢

Django模板導入和繼承、mysql數據庫導入、單表查詢 1

1. 模板導入和繼承 2

1.1. 模板導入 2

1.2. 母版繼承 2

1.3. 自定義 inclusion_tag 3

2. 數據庫的插入 3

2.1. 配置文件配置 3

2.2. __init__文件設置 4

3. 單表查詢 4

3.1. 4

3.2. 4

 

 

  1. 模板導入和繼承
    1. 模板導入

 

把公共部分放到html裏,比如叫left.html

想在哪一個頁面用,就在哪一部分用{%include'left.html'%}

 

    1. 母版繼承

 

1.寫一個母版base.html

2.要更改的地方

{%block base%}

母版的盒子裏也可以寫東西

{%endblock%}

3.調用:

重新創建一個頁面第一行寫入{%extends'base.html'}

{%block base%}

自己的東西

{%endblock%}

4.調用的時候使用母版內的內容使用{{block.super}},它放在哪,原來母版的東西就會渲染在哪

{%block base%}

{{block.super}}

自己的東西

{%endblock%}

5.如果不繼承盒子,它會用母版原來的內容,如果繼承了,繼承的內容會覆蓋母版的內容,即如果繼承的內容爲空腹,則母版的內容會被覆蓋成空白.

6.盒子的繼承與盒子繼承的無關,因爲盒子繼承了會被Django先處理再渲染,處理的過程不分順序先後

    1. 自定義inclusion_tag

 

1.先去setting裏面把app名字配置上

2.再去app目錄下創建一個templatetags模塊

3.寫py文件(my_test.py)

4.from django import template

5.register=template.Library()

[email protected]_tag('test.html')

def my_inclusion(n):

data=[]

for i in range(n):

data.sppend('第%s行'%i)

return('datea':data)

7.寫test.html頁面

<ul>

{%for choice in data%}

<li>{{choice}}</li>

{%endfor%}

</ul>

8.{%load my_test%}

9.{%my_inclusion 10%}#它回返回html的頁面

  1. 數據庫的插入
    1. 配置文件配置

 

DATABASES={

#'default':{

#'ENGINE':'django.db.backends.sqlite3',

#'NAME':os.path.join(BASE_DIR,'db.sqlite3'),

#}

'default':{

'ENGINE':'django.db.backends.mysql',

'NAME':'數據庫名字',

'HOST':'127.0.0.1',

'PORT':3306,

'USER':'root',

'PASSWORD':'123'

}

}

 

    1. __init__文件設置

 

import pymysql

#django默認用mysqldb連接mysql數據庫,但是mysqldb這個模塊不支持python3.0以後的版本,

#所以用pymysql來替換mysqldb

pymysql.install_as_MySQLdb()

  1. 單表查詢

 

第一種方式(推薦使用):book=Book.objects.create(name=name)

第二種方式:book=Book(name=name)

boo.save()

 

1.all():查詢所有結果

2.filter(**kwargs):它包含了與所給篩選條件想匹配的對象

3.get(**kwargs):返回與所給篩選條件相匹配的對象,返回結果有且只有一個,如果符合篩選條件的對象超過一個或者沒有都會拋出錯誤.

4.exclude(**kwargs):它包含了與所給篩選條件不匹配的對象.

5.order_by(*field):對查詢結果排序,('-id')會進行反向排序

6.reverse():對查詢結果反向排序,基於order_by的基礎上

7.count():返回數據庫中匹配查詢(QuerySet)的對象數量

8.first():返回第一條記錄

9.last():返回最後一條記錄

10.exists():如果QuerySet包含數據,就返回True,否則返回False

11.values(*field):返回一個ValueQuerySet一個特殊的QuerySet,運行後得到的並不是一系列model的實例化對象,而是一個可迭代的字典序列

12.values_list(*field):它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列

13:distinct():從返回結果中剔除重複記錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章