前期知識點回顧
內容回顧
1、可叠代對象、叠代器、生成器、裝飾器有什麽區別?
可叠代對象:內部實現了__iter__方法,是一個叠代器
叠代器:內部實現了__iter__和__next__方法,可以進行for循環
生成器:函數內部有yield的就是生成器,生成器也有一個__next__方法,它的本質是一個叠代器。
生成器有兩大功能:1、生成 2、叠代
裝飾器:在函數執行之前或者函數執行之後要擴展的功能,裝飾器是用閉包實現的
2、面向對象的方法?面向對象有三種方法:
實例方法:def func(self):pass 用對象去調用方法
類方法:cls是當前操作的類名
@classmethod
def func(cls):pass
靜態方法:
@staticmethod
def func():pass
類方法和靜態方法的區別:
類方法:類方法傳一個cls參數
靜態方法:靜態方法不用傳參數
相同點:都可以用用類去調用方法
3、類裏面的字段有兩種:
靜態字段
動態字段
class A:
s ="aaa" 靜態字段
def __init__(self):
self.name = name 對象字段
4、屬性:
@propertydef func(self): pass @fee.setter def fee(self): pass @fee.deltter def fee(self): pass 吧一個方法當做屬性來調用 因為屬性不能被修改,可以用@fee.setter
5、提高查詢數據庫性能相關的有什麽方式?
加索引的方式:索引就是加速查詢 :通過不斷的縮小數據的範圍篩選出最終想要的結果
索引又分為幾大類?
索引分類
1.普通索引index :加速查找
2.唯一索引
主鍵索引:primary key :加速查找+約束(不為空且唯一)
唯一索引:unique:加速查找+約束 (唯一)
3.聯合索引
-primary key(id,name):聯合主鍵索引
-unique(id,name):聯合唯一索引
-index(id,name):聯合普通索引
4.全文索引fulltext :用於搜索很長一篇文章的時候,效果最好。
5.空間索引spatial :了解就好,幾乎不用
6、如何命中索引?
創建索引,未命中
命中:相當於精確查詢。。。in,like就不命中
排序條件為索引,則select字段必須也是索引字段,否則無法命中
6、django的生命周期
請求先到wsgi---中間件---如果驗證通過就走到路由系統----視圖函數(從數據庫中取到數據,在模板中渲染)
7、中間件做過什麽?
用戶登錄
權限管理
crsf
session
8、在路由系統url上一定要記得加上起始終止符
9、視圖:request請求都拿到了些什麽?
request.POST POST裏面可能拿不到數據,但是在body中一定會拿到數據
request.body
request.GET
request.path_info
request.method
request.session
request.cookies
....
10、Form驗證
創建規則:
類:
字段:
required=True,
min_length=3,
max_length=18,
error_messages={
‘required‘: ‘密碼不能為空‘,
‘min_length‘: ‘密碼長度不能小於3‘,
‘max_length‘: ‘密碼長度不能大於18‘,
‘invalid‘: ‘密碼格式錯誤‘,
},
validators=[RegexValidator(‘\d+‘,‘只能是數字‘) ]
11、數據庫操作
13個API操作
all,filter,get,values,values_list,fast,last,distinct,reverse,include,order_by, exist,count
另加2個:only、refer
FK ManyToMany
12、模板
自定義過濾器和標簽
1、常見一個templatetags文件夾
2、在該文件夾中隨便創建一個py文件
3、在使用自定義simple_tag和filter的html文件中導入之前創建的 my_tags.py
3、{% load my_tags %}
自定義過濾器函數的參數只能兩個,可以進行邏輯判斷
自定義標簽無參數限制,不能進行邏輯判斷
13. Session和Cookie是什麽?什麽區別和關系?Session原理?
由於http無狀態,當請求進來的時候不會保存狀態,當每次訪問的時候就不知道是誰進來了,這就引出了cookie
cookie的原理:
服務器產生內容,瀏覽器收到請求後保存在瀏覽器;
當瀏覽器再次訪問時,瀏覽器會自動帶上cookie,
這樣服務器就能通過cookie的內容來判斷這個是“誰”了。
session 的原理:
session會保存在服務器,這樣比較安全
總結而言:cookie彌補了http無狀態的不足,讓服務器知道來的人是“誰”;
但是cookie以文本的形式保存在本地,自身安全性較差;
所以我們就通過cookie識別不同的用戶,對應的在session裏保存私密的信息以及超過4096字節的文本。
另外,上述所說的cookie和session其實是共通性的東西,不限於語言和框架
14. 什麽是模板繼承,好處是什麽?
模板繼承{% extends "base.html" %}
好處:縮減代碼
前期知識點回顧