I'm fond of Django and use it regularly. I find most of its defaults sane, but one has always bothered me to the point that I override it on every project.
The default max length of a URLField
model field is 200 characters. The docs verify this limit, but don't explain why it is the case.
class URLField(CharField):
...
def __init__(self, verbose_name=None, name=None, **kwargs):
kwargs['max_length'] = kwargs.get('max_length', 200)
...
I override it because plenty of URLs are longer than 200 chars, especially with a query string.
I understand that though the HTTP spec does not specify a maximum length, virtually all browsers support at least 2000 characters, which to me suggests a new sane default.
Curious to dig deeper, I found the first commit to add the limit in January 2007 (#f6390e8
by @jacobian); it's been essentially unchanged since.
Going back even further, I discovered what I think is the version of the code mapping field types to database column types for the ORM (#f69cf70
by @adrianholovaty). The file for MySQL for example exists in May 2006 with the same 200-character limit since Django 0.95: