我喜歡Django並定期使用它。我發現它的大多數默認值都是理智的,但是我總是困擾着我,以至於我在每個項目上重寫它。爲什麼Django的URLField默認截斷爲200個字符?
URLField
模型字段的默認最大長度爲200個字符。文檔驗證了這個限制,但不能解釋爲什麼它是這種情況。
class URLField(CharField):
...
def __init__(self, verbose_name=None, name=None, **kwargs):
kwargs['max_length'] = kwargs.get('max_length', 200)
...
我重寫它,因爲大量的URL長度超過200個字符,特別是對於查詢字符串。
據我所知,雖然HTTP規範does not specify a maximum length,幾乎所有的瀏覽器都支持at least 2000 characters,這對我來說建議一個新的理智默認。
好奇地深入挖掘,我發現第一次承諾在2007年1月添加限制(#f6390e8
by @jacobian);從那以後基本沒有變化。
再回到更進一步,我發現了什麼,我認爲是代碼映射字段類型的版本數據庫列類型的ORM(#f69cf70
由@adrianholovaty)。該文件爲MySQL例如,在2006年5月與存在的Django以來0.95同200個字符的限制:
「大量的網址超過200個字符」您有哪些研究基於此? –
@ IgnacioVazquez-Abrams我沒有引用一個特定的研究,只是我實際經歷過的一件事 - 其中一個案例是使用社交Feed構建應用程序,該應用程序保存了來自推文的擴展URL。 –
@ IgnacioVazquez-Abrams如果只有一個URL長度超過200個字符,足以說200個字符是不夠的。 – GwynBleidD