python後端觀感
(一) Pycharm 快捷操作
選中一行 Ctrl + c
復制當前行 Ctrl + d
顯示引用或調用的 Ctrl + b
多行註釋 Ctrl + /
刪除行 Ctrl + x
PEP8 Ctrl + alt + L
撤銷 Ctrl Z
移動光標; ctrl 加右鍵,向右移動一個單詞
替換:ctrl + R
多行縮進 選中文字 + Tab
折疊 Ctrl Shift -
打開 Ctrl Shift +
(二)後端的運作模式
- 互聯網上的信息傳遞就像是在發電報,Socket 就像是一個電報公司
- 寫電報的時候是有一定的格式的,我們通常使用的是 HTTP 協議這種格式。共同的協議客服端與服務端開發的程序都能按照協議解讀出傳遞出的信息
- 客服端的一個請求就有服務端的響應,響應就是根據請求的來信,組織出一封新的信發送給瀏覽器
- 數據的傳遞
- GET 只能在路由裏面傳遞參數,並且在地址蘭中顯示 www.g.cn/?a=1&b=2
- POST 不僅可以在路由裏面傳參,還可以在 HTTP 協議的 Body 裏面傳遞參數
- 前端在 form 表單中提交數據交付給後臺,GET 只是請求頁面,POST 提交的數據是要寫入數據庫的
(三)Cookie Session
Cookie 與 Session 都是字典,一個在客戶端,一個在服務端。他們的存在是為了解決用戶的身份問題,如“證明我就是我”,我們在 HTTP 響應的頭加上一個 Cookie 屬性,瀏覽器就會記住它,下次請求的時候就會自動把它帶上
為了防止別人能夠拆到我們的 Cookie,我們一般會采用一個隨機的字符串來代替,讓隨機的字符串和用戶身份對應,這個就是 Session 技術。即使是這樣我們的 Cookie 還是有可能被路由器偷到(換成 HTTPS 協議可以解決這個問題 默認端口443)
# Session 可以理解為字典裏面套了一個字典
# Cookie 是給用戶定制化的一個東西
(四)數據持久化
數據持久化是編程中的一個非常重要的概念。比如在機器學習的時候會產生海量的數據,但是無論你用那種數據結構進行存儲,在電腦關機的時候這些東西都會在內存中消失。我們需要在重新打開電腦的時候能接著上一次繼續計算,而不是從頭開始計算。我們把 List Tuple Dict 等裏面的數據序列化後寫成文件,放在硬盤中。下次就可以從硬盤中讀取數據,不用重新計算,這個操作也可以認為是保存計算內容的上下文。在 Python 中可以使用 Json 庫,進行 dump 和 load 來完成響應的操作。
思考:如何將一個對象存在硬盤中?
答:一個對象,可以理解為一個數據的載體,本質上是一個屬性對應一個值。如 m 是一個對象 m.__dict__() 操作可以拿到一個關於對象的字典。我們把字典序列化後存在硬盤中就可以了。下次運行的時候根據字典把對象重新 new 出來。
(五)高級特性——打包、解包
- * 將位置參數打包成元組,解包序列化對象為 str, tuple, list
- **將關鍵字參數打包成字典,解包字典
-
# 位置參數,按位置順序賦值
# 關鍵字參數,直接給指定變量賦值,與位置順序無關
# log2(a=t1, b=t2)
# log2(b=t2, a=t1) -
1 def log(*args,**kwargs): 2 print(args,**kwargs) 3 4 log(1,2,3)
代碼的結果: (1,2,3)
-
python後端觀感