Django學(xué)習整理

這篇文章不是給初學(xué)Django的人看的蚯斯,只是我在整理一級項目的時候遇見的一些問題和知識點的記錄

1.related_name

在模型寫的時候我們有一個字段就是related_name, 這個不是verbose_name, 他的作用是用于檢索方面窒所,我們在檢索某個作者的作品的時候冶共,會檢索作品表磕潮,然后匹配外鍵是否為該作者刁笙,這樣就能得到期望的作品

但是有個更簡便的寫法剂府,直接從作者那里寫(不過我認為底層還是檢索的作品):

book = person.book_set.all()
//book = person.類名_set.all()

如果在book類中的外鍵寫了related_name字段佳励,那么我就可以用這個字段來代替查找:

related_name='person_books'
person.person_books.all()//查詢

2.DateField

如果是前后端分離的話跨新,一定要注意DateField給過來的格式是yyyy-mm-dd

不然后端會報錯

3.獲取POST數(shù)據(jù)

在Django中富腊,如果前端傳過來的數(shù)據(jù)是form-data格式,在獲取數(shù)據(jù)的時候我們一般要:

req = request.POST

request.POST就是表單中的數(shù)據(jù)域帐,是一個QueryDict

那么request.body是什么呢赘被?

request.body其實也是獲取請求體里面的數(shù)據(jù),但是是一個字符串內(nèi)容俯树,如果前端用表單類型傳過來帘腹,你用json.loads()就會出錯,因為這個字符串不是json格式许饿。

那如果前端傳過來application/json格式的話阳欲,就可以用reqeust.body獲取字符串內(nèi)容,然后將其轉(zhuǎn)為字典(json.loads)陋率,那如果用request.POST呢球化?也會報錯的,因為這個字符串的格式不是原來的鍵值對格式瓦糟,而是json格式筒愚,那么Django就轉(zhuǎn)換不了

總結(jié):

  • form-data 就只能用 request.POST
  • application/json 就只能用 request.body 然后轉(zhuǎn)為字典

4.獲取GET數(shù)據(jù)

一般而言用GET請求很少用請求體炕吸,雖然我還沒研究過HTTP協(xié)議里面各個方法的區(qū)別整胃,但是GET方法最好在請求體里面什么都不放,參考:
https://my.oschina.net/airship/blog/3081424

獲取Query String里面的內(nèi)容,Django里是這樣:

 request.GET

得到一個QueryDict對象片仿,里面都是URL里面帶的參數(shù)

然后GET請求體里面的東西在用reqeust.GET是獲取不到的,只能:

request.body

得到字符串內(nèi)容

總結(jié):
1.GET請求體一般不放東西陆淀,要獲取請求體內(nèi)的東西考余,只能用request.body
2.GET請求的參數(shù)獲取是 request.GET
3.POST請求獲取請求體是request.POST,也可以用request.body

可以參考官網(wǎng):https://docs.djangoproject.com/en/3.0/ref/request-response/
整理出的request和response對象常用方法

5.Cookie,Session

Django用來進行會話跟蹤的手段,還有一種token轧苫,這里不講楚堤。
這兩種手段都是用來記錄狀態(tài)的,是對HTTP無狀態(tài)的一種擴展含懊。

Cookie是保存在客戶端的身冬,我們這樣來理解Coookie,它就是一串字符岔乔,是一種憑證酥筝,客戶端登錄服務(wù)器之后,服務(wù)器發(fā)送這個憑證給客戶端雏门,下次客戶端訪問服務(wù)器的時候樱哼,直接把這個憑證show出來,服務(wù)器確認后剿配,就能讓客戶端訪問資源搅幅,而無需重復(fù)登錄。

一般呼胚,我們可以把用戶名或者用戶id保存在Cookie里面茄唐,這樣服務(wù)器就知道這個憑證對應(yīng)的客戶端信息了,但是這樣子的憑證未免也太脆弱了吧蝇更,Cookie是明文的沪编,如果我們僅僅就是放一個uid進去,用戶如果進行偽造怎么辦呢年扩? 那他不就可以用其他人的賬號了蚁廓?

所以在Django里面我們一般要加鹽,加鹽就是一種簽名手段厨幻,比如說用戶1和用戶2相嵌,我們對Cookie加鹽之后,用戶1的Cookie:uid1 xxxxxxxxx , 用戶2的Cookie:uid2 xxxxxxxxx

后面的xxxxxx就是用戶的簽名(就是對應(yīng)用戶的特定字符串况脆,之所以說簽名饭宾,因為這個就好像是用戶自己簽名一樣),如果居心不良的用戶想要偽造格了,比如說用戶1看铆,想要訪問用戶2的資源,雖然可以改為uid2,但是用戶1沒有后面xxxxx這么一串用戶2正確的簽名盛末,服務(wù)器是不會通過的

簽名的原理我也不太清楚弹惦,類似一種哈希函數(shù)否淤?

再次強調(diào),簽名不是加密棠隐,Coookie還是可以在客戶端看到的叹括,所以一般Cookie不要存敏感信息(或者可以自己進行加密然后再發(fā)送)
(參考:https://segmentfault.com/q/1010000015154576?utm_source=tag-newest)

Session和Cookie的最大區(qū)別就是,Session存放在服務(wù)器端宵荒,也是鍵值對,這個key是一串隨機字符串净嘀,value就是要存的用戶信息报咳,客戶端還是要存放sessionid(即key)到本地,然后憑借這個挖藏,服務(wù)器端就搜索是否有這么一串隨機字符串暑刃,如果有就ok了

Cookie的使用:

response = HttpResponse()
response.set_signed_cookie('is_logged',user.id,salt="wobuzhidaoyongshenmejiamisuanfabijiaohaozLPQ",max_age=24*3600*7)

解釋:
set_signed_cookie(key,value,salt,max_age)

max_age單位是秒

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市膜眠,隨后出現(xiàn)的幾起案子岩臣,更是在濱河造成了極大的恐慌,老刑警劉巖宵膨,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件架谎,死亡現(xiàn)場離奇詭異,居然都是意外死亡辟躏,警方通過查閱死者的電腦和手機谷扣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捎琐,“玉大人会涎,你說我怎么就攤上這事∪鸫眨” “怎么了末秃?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長籽御。 經(jīng)常有香客問我练慕,道長,這世上最難降的妖魔是什么技掏? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任贺待,我火速辦了婚禮,結(jié)果婚禮上零截,老公的妹妹穿的比我還像新娘麸塞。我一直安慰自己,他們只是感情好涧衙,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布哪工。 她就那樣靜靜地躺著奥此,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雁比。 梳的紋絲不亂的頭發(fā)上稚虎,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音偎捎,去河邊找鬼蠢终。 笑死,一個胖子當著我的面吹牛茴她,可吹牛的內(nèi)容都是我干的寻拂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丈牢,長吁一口氣:“原來是場噩夢啊……” “哼祭钉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起己沛,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤慌核,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后申尼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垮卓,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年师幕,在試婚紗的時候發(fā)現(xiàn)自己被綠了扒接。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡们衙,死狀恐怖钾怔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒙挑,我是刑警寧澤宗侦,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站忆蚀,受9級特大地震影響矾利,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜馋袜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一男旗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧欣鳖,春花似錦察皇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矾缓。三九已至,卻和暖如春稻爬,著一層夾襖步出監(jiān)牢的瞬間嗜闻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工桅锄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琉雳,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓友瘤,卻偏偏與公主長得像翠肘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子商佑,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Nginx 的配置文件使用的就是一門微型的編程語言,許多真實世界里的 Nginx 配置文件其實就是一個一個的小程序...
    SkTj閱讀 4,194評論 0 7
  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,182評論 0 3
  • Meeta酒吧來了位新駐唱厢塘,唱的歌大多致郁茶没,酒沒喝到一半,我聽著實在憋悶晚碾,便跑到外面抽煙抓半。 剛把最后一支煙點上,那...
    芥川不是河_閱讀 273評論 0 0
  • 停下來格嘁,真的就停下來了笛求,確實是需要達到一定經(jīng)濟條件后,才會有不一樣的思維糕簿,就如當年職位上升一般探入,不同層次不同的思想...
    荷竹君閱讀 183評論 0 0
  • 親君子遠小人的擴充 有時候我感覺,我說了千言萬語懂诗,又復(fù)雜又啰里啰嗦蜂嗽。其實總結(jié)起來,不外是親君子遠小人這個理...
    覃榜言閱讀 513評論 0 33