mirror of
https://github.com/django/django.git
synced 2025-01-10 02:16:08 +00:00
8914b571eb
To use the simple `filename="..."` form, the value must conform to the official grammar from RFC6266[^1]: filename-parm = "filename" "=" value value = <value, defined in [RFC2616], Section 3.6> ; token | quoted-string The `quoted-string` definition comes from RFC 9110[^2]: ``` quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text The backslash octet ("\") can be used as a single-octet quoting mechanism within quoted-string and comment constructs. Recipients that process the value of a quoted-string MUST handle a quoted-pair as if it were replaced by the octet following the backslash. quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) A sender SHOULD NOT generate a quoted-pair in a quoted-string except where necessary to quote DQUOTE and backslash octets occurring within that string. ``` That is, quoted strings are able to express horizontal tabs, space characters, and everything in the range from 0x21 to 0x7e, expect for 0x22 (`"`) and 0x5C (`\`), which can still be expressed but must be escaped with their own `\`. We ignore the case of `obs-text`, which is defined as the range 0x80-0xFF, since its presence is there for permissive parsing of accidental high-bit characters, and it should not be generated by conforming implementations. Transform this character range into a regex and apply it in addition to the "is ASCII" check. This ensures that all simple filenames are expressed in the simple format, and that all filenames with newlines and other control characters are properly expressed with the percent-encoded `filename*=...`form. [^1]: https://datatracker.ietf.org/doc/html/rfc6266#section-4.1 [^2]: https://datatracker.ietf.org/doc/html/rfc9110#name-quoted-strings |
||
---|---|---|
.github | ||
.tx | ||
django | ||
docs | ||
extras | ||
js_tests | ||
scripts | ||
tests | ||
.editorconfig | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.readthedocs.yml | ||
AUTHORS | ||
CONTRIBUTING.rst | ||
eslint.config.mjs | ||
Gruntfile.js | ||
INSTALL | ||
LICENSE | ||
LICENSE.python | ||
MANIFEST.in | ||
package.json | ||
pyproject.toml | ||
README.rst | ||
tox.ini |
====== Django ====== Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Thanks for checking it out. All documentation is in the "``docs``" directory and online at https://docs.djangoproject.com/en/stable/. If you're just getting started, here's how we recommend you read the docs: * First, read ``docs/intro/install.txt`` for instructions on installing Django. * Next, work through the tutorials in order (``docs/intro/tutorial01.txt``, ``docs/intro/tutorial02.txt``, etc.). * If you want to set up an actual deployment server, read ``docs/howto/deployment/index.txt`` for instructions. * You'll probably want to read through the topical guides (in ``docs/topics``) next; from there you can jump to the HOWTOs (in ``docs/howto``) for specific problems, and check out the reference (``docs/ref``) for gory details. * See ``docs/README`` for instructions on building an HTML version of the docs. Docs are updated rigorously. If you find any problems in the docs, or think they should be clarified in any way, please take 30 seconds to fill out a ticket here: https://code.djangoproject.com/newticket To get more help: * Join the ``#django`` channel on ``irc.libera.chat``. Lots of helpful people hang out there. `Webchat is available <https://web.libera.chat/#django>`_. * Join the django-users mailing list, or read the archives, at https://groups.google.com/group/django-users. * Join the `Django Discord community <https://discord.gg/xcRH6mN4fa>`_. * Join the community on the `Django Forum <https://forum.djangoproject.com/>`_. To contribute to Django: * Check out https://docs.djangoproject.com/en/dev/internals/contributing/ for information about getting involved. To run Django's test suite: * Follow the instructions in the "Unit tests" section of ``docs/internals/contributing/writing-code/unit-tests.txt``, published online at https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/#running-the-unit-tests Supporting the Development of Django ==================================== Django's development depends on your contributions. If you depend on Django, remember to support the Django Software Foundation: https://www.djangoproject.com/fundraising/