原创 裝飾器實現路由功能

1:爲什麼要用裝飾器,有什麼優點呢? 2:裝飾器是如何實現的呢? 3:它能完成什麼功能呢?解決什麼問題呢? 可以在調用這個函數之前,就已經完成了這個函數名字與相應的url的對應關係,而這種對應關係用字典這種數據結構來存儲。不過哪個

原创 美美生鮮項目學習筆記,糾錯本

紀錄下自己寫項目過程中出錯的地方,不怕犯錯,怕的是重複犯錯。 前端寫register.html時,action="/user/register"可以不寫,因爲表單默認會提交到瀏覽器中的地址 <form method="post"

原创 《計算機程序的構造和解釋》思考筆記1:如何抽象

;下面的問題是,我們之前是通過不斷猜測點來找到一個數的平方根的。現在我們學了不定點fixed-point,我們可以讓它來找平方根,其實就是x^2=y,x=y/x,轉化成求f(x)=y/x這個函數的不動點。怎麼做呢? ;先寫好fix

原创 談談學習方法背後的原理

一直以來,不管是求學時代還是工作中,總有些人學習新東西特別快。“別人聰明嘛,老天爺就是不公平”成了很多人低下學習效率的一個安心,逃避的解釋。當然在這裏我必須承認一點,有些人確實智商高一點,“CPU”跑得比別人快一點,“內存”容量也

原创 閱讀flask源碼2:Local,LocalStack

我們還是以flask0.1的代碼來閱讀,先提出幾個常見的問題: 1上下文是怎麼被壓入棧的? 2爲什麼在不同的程序中通過相同的變量request可以拿到對應的請求 我們先看第一個問題:上下文是怎麼被壓入棧的? 服務器傳過來的請求參數

原创 閱讀flask源碼1:flask請求流程

我們先大致的走下flask處理請求的流程,我用的是flask0.1這個版本的源碼。之所以用這個,是爲了去除不必要枝葉,快速把握flask的主幹。後面再迭代,加細節。 from flask import Flask, Reque

原创 《流暢的python》閱讀筆記3:讓代碼更抽象

註釋:下面代碼演示瞭如何讓代碼更抽象,更有應對變化的可能。下面(1)(2)(3)(4)(5)都是被否定的寫法,也是一些初學者容易寫出的代碼。 class Vector2d(): def __init__(self, x

原创 《流暢的python》閱讀筆記1:雜談

1 這本書主要講了什麼呢?給我最大的收穫是什麼?以前我不太懂魔法函數的作用,這次我明白,魔法方法,可以讓你自定義的對象,實現一些跟python內置對象一樣的方法和操作,比如說,你的類實現__repr__,那麼你就可以apply(r

原创 重寫藍圖,自定義紅圖

疑問 1:怎麼返回特定文件中的視圖函數?如何在一個文件中,調用另一個文件中的函數?先import,再用viewfuntion’endpoint’ 2: 如何在app.run之前,先運行完別的文件?放在creat_app函數中,ap

原创 fisher項目重構

1所有文件放在一個文件裏不好維護 2具體模型的神力函數放在不同的文件裏,比如用戶,用戶有找回密碼等,而書籍有search方法。 3視圖函數不應該放在入口文件裏。入口文件是用來項目初始化的。

原创 《流暢的python》閱讀筆記2:切片及原理

1:什麼場景下我們會用到切片? 2:實現切片的原理,基於此,我們如何實現一個支持切片操作的自定義類型? 下面說下什麼場景下我們會用到切片? 當我們想截取一段代碼,怎樣操作呢? 比如下面: list = [0.0, 1.0, 2.0

原创 閱讀flask源碼3:仿寫Local,LocalStack

我們上篇分析了上下文壓入棧,出棧的大致流程,現在我們要問,flask是怎麼實現的呢?準備來說,Local是怎麼管理不同請求對象的,LocalProxy是怎麼代理的。因爲flask源碼太複雜,今天我們自己一步一步實現類似於Local

原创 flask session 探究

session 如何解決登錄的問題,上下文的問題的? 具體如何實現 背後的源代碼怎麼實現的?爲什麼要這麼實現? 怎樣實現登錄的時候,每個用戶不同的鍵值對,你的id是什麼,和session中對比,看有沒有,有就把這個用戶作爲當前用戶

原创 重構簡化代碼

class HTTP(): def get(self, url, return_json=True): r = requests.get(url) if r.status_code !=20

原创 關於代碼的重構

# 需求:如果是13位的數字,或者是10位的數字,數字中有"-",那麼就判斷爲isbn,否則就是key,這裏有兩個編程方面的思想要注意:一個可以把這個判斷做爲一個函數封裝起來,這是爲了1容易閱讀,一看你的函數名就知道這個函數是做什麼的,