Updated various links in docs to avoid redirects
Thanks Tim Graham and Mariusz Felisiak for review and completion.
This commit is contained in:
parent
a3ba2662cd
commit
01f658644a
|
@ -369,5 +369,5 @@ epub_cover = ('', 'epub-cover.html')
|
||||||
# epub_use_index = True
|
# epub_use_index = True
|
||||||
|
|
||||||
# -- custom extension options --------------------------------------------------
|
# -- custom extension options --------------------------------------------------
|
||||||
cve_url = 'https://web.nvd.nist.gov/view/vuln/detail?vulnId=%s'
|
cve_url = 'https://nvd.nist.gov/view/vuln/detail?vulnId=%s'
|
||||||
ticket_url = 'https://code.djangoproject.com/ticket/%s'
|
ticket_url = 'https://code.djangoproject.com/ticket/%s'
|
||||||
|
|
|
@ -36,7 +36,7 @@ PostgreSQL fans, and MySQL_, `SQLite 3`_, and Oracle_ are also supported.
|
||||||
.. _PostgreSQL: https://www.postgresql.org/
|
.. _PostgreSQL: https://www.postgresql.org/
|
||||||
.. _MySQL: https://www.mysql.com/
|
.. _MySQL: https://www.mysql.com/
|
||||||
.. _`SQLite 3`: https://www.sqlite.org/
|
.. _`SQLite 3`: https://www.sqlite.org/
|
||||||
.. _Oracle: http://www.oracle.com/
|
.. _Oracle: https://www.oracle.com/
|
||||||
|
|
||||||
.. _faq-python-version-support:
|
.. _faq-python-version-support:
|
||||||
|
|
||||||
|
|
|
@ -234,7 +234,7 @@ See :doc:`/howto/error-reporting` for details on error reporting by email.
|
||||||
Consider using an error monitoring system such as Sentry_ before your
|
Consider using an error monitoring system such as Sentry_ before your
|
||||||
inbox is flooded by reports. Sentry can also aggregate logs.
|
inbox is flooded by reports. Sentry can also aggregate logs.
|
||||||
|
|
||||||
.. _Sentry: https://docs.getsentry.com/
|
.. _Sentry: https://docs.sentry.io/
|
||||||
|
|
||||||
Customize the default error views
|
Customize the default error views
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
|
@ -179,7 +179,7 @@ If you are using a version of Apache older than 2.4, replace
|
||||||
``Require all granted`` with ``Allow from all`` and also add the line
|
``Require all granted`` with ``Allow from all`` and also add the line
|
||||||
``Order deny,allow`` above it.
|
``Order deny,allow`` above it.
|
||||||
|
|
||||||
.. _Nginx: http://wiki.nginx.org/Main
|
.. _Nginx: https://nginx.org/en/
|
||||||
.. _Apache: https://httpd.apache.org/
|
.. _Apache: https://httpd.apache.org/
|
||||||
|
|
||||||
.. More details on configuring a mod_wsgi site to serve static files can be found
|
.. More details on configuring a mod_wsgi site to serve static files can be found
|
||||||
|
|
|
@ -7,7 +7,7 @@ How to use Django with uWSGI
|
||||||
uWSGI_ is a fast, self-healing and developer/sysadmin-friendly application
|
uWSGI_ is a fast, self-healing and developer/sysadmin-friendly application
|
||||||
container server coded in pure C.
|
container server coded in pure C.
|
||||||
|
|
||||||
.. _uWSGI: https://projects.unbit.it/uwsgi/
|
.. _uWSGI: https://uwsgi-docs.readthedocs.io/
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
|
@ -39,18 +39,14 @@ uWSGI model
|
||||||
|
|
||||||
uWSGI operates on a client-server model. Your Web server (e.g., nginx, Apache)
|
uWSGI operates on a client-server model. Your Web server (e.g., nginx, Apache)
|
||||||
communicates with a `django-uwsgi` "worker" process to serve dynamic content.
|
communicates with a `django-uwsgi` "worker" process to serve dynamic content.
|
||||||
See uWSGI's `background documentation`_ for more detail.
|
|
||||||
|
|
||||||
.. _background documentation: https://projects.unbit.it/uwsgi/wiki/Background
|
|
||||||
|
|
||||||
Configuring and starting the uWSGI server for Django
|
Configuring and starting the uWSGI server for Django
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
uWSGI supports multiple ways to configure the process. See uWSGI's
|
uWSGI supports multiple ways to configure the process. See uWSGI's
|
||||||
`configuration documentation`_ and `examples`_.
|
`configuration documentation`_.
|
||||||
|
|
||||||
.. _configuration documentation: https://uwsgi.readthedocs.io/en/latest/Configuration.html
|
.. _configuration documentation: https://uwsgi.readthedocs.io/en/latest/Configuration.html
|
||||||
.. _examples: https://projects.unbit.it/uwsgi/wiki/Example
|
|
||||||
|
|
||||||
Here's an example command to start a uWSGI server::
|
Here's an example command to start a uWSGI server::
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ such as `Apache Tomcat`_. Full JavaEE applications servers such as `GlassFish`_
|
||||||
or `JBoss`_ are also OK, if you need the extra features they include.
|
or `JBoss`_ are also OK, if you need the extra features they include.
|
||||||
|
|
||||||
.. _`Apache Tomcat`: https://tomcat.apache.org/
|
.. _`Apache Tomcat`: https://tomcat.apache.org/
|
||||||
.. _GlassFish: https://glassfish.java.net/
|
.. _GlassFish: https://javaee.github.io/glassfish/
|
||||||
.. _JBoss: https://www.jboss.org/
|
.. _JBoss: https://www.jboss.org/
|
||||||
|
|
||||||
Installing Django
|
Installing Django
|
||||||
|
|
|
@ -73,7 +73,7 @@ type of web server -- faster but less full-featured. Some common choices are:
|
||||||
* Nginx_
|
* Nginx_
|
||||||
* A stripped-down version of Apache_
|
* A stripped-down version of Apache_
|
||||||
|
|
||||||
.. _Nginx: http://wiki.nginx.org/Main
|
.. _Nginx: https://nginx.org/en/
|
||||||
.. _Apache: https://httpd.apache.org/
|
.. _Apache: https://httpd.apache.org/
|
||||||
|
|
||||||
Configuring these servers is out of scope of this document; check each
|
Configuring these servers is out of scope of this document; check each
|
||||||
|
@ -142,8 +142,8 @@ as changing your :setting:`STATICFILES_STORAGE` setting.
|
||||||
For details on how you'd write one of these backends, see
|
For details on how you'd write one of these backends, see
|
||||||
:doc:`/howto/custom-file-storage`. There are 3rd party apps available that
|
:doc:`/howto/custom-file-storage`. There are 3rd party apps available that
|
||||||
provide storage backends for many common file storage APIs. A good starting
|
provide storage backends for many common file storage APIs. A good starting
|
||||||
point is the `overview at djangopackages.com
|
point is the `overview at djangopackages.org
|
||||||
<https://www.djangopackages.com/grids/g/storage-backends/>`_.
|
<https://djangopackages.org/grids/g/storage-backends/>`_.
|
||||||
|
|
||||||
Learn more
|
Learn more
|
||||||
==========
|
==========
|
||||||
|
|
|
@ -70,7 +70,7 @@ Django source tree, as for any code change:
|
||||||
|
|
||||||
.. _Transifex: https://www.transifex.com/
|
.. _Transifex: https://www.transifex.com/
|
||||||
.. _Django project page: https://www.transifex.com/django/django/
|
.. _Django project page: https://www.transifex.com/django/django/
|
||||||
.. _Transifex User Guide: http://docs.transifex.com/
|
.. _Transifex User Guide: https://docs.transifex.com/
|
||||||
|
|
||||||
.. _translating-documentation:
|
.. _translating-documentation:
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ Having problems? See :ref:`troubleshooting-unit-tests` for some common issues.
|
||||||
Running tests using ``tox``
|
Running tests using ``tox``
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
`Tox <http://tox.testrun.org/>`_ is a tool for running tests in different
|
`Tox <https://tox.readthedocs.io/>`_ is a tool for running tests in different
|
||||||
virtual environments. Django includes a basic ``tox.ini`` that automates some
|
virtual environments. Django includes a basic ``tox.ini`` that automates some
|
||||||
checks that our build server performs on pull requests. To run the unit tests
|
checks that our build server performs on pull requests. To run the unit tests
|
||||||
and other checks (such as :ref:`import sorting <coding-style-imports>`, the
|
and other checks (such as :ref:`import sorting <coding-style-imports>`, the
|
||||||
|
@ -272,7 +272,7 @@ associated tests will be skipped.
|
||||||
.. _gettext: https://www.gnu.org/software/gettext/manual/gettext.html
|
.. _gettext: https://www.gnu.org/software/gettext/manual/gettext.html
|
||||||
.. _selenium: https://pypi.python.org/pypi/selenium
|
.. _selenium: https://pypi.python.org/pypi/selenium
|
||||||
.. _sqlparse: https://pypi.python.org/pypi/sqlparse
|
.. _sqlparse: https://pypi.python.org/pypi/sqlparse
|
||||||
.. _pip requirements files: https://pip.pypa.io/en/latest/user_guide.html#requirements-files
|
.. _pip requirements files: https://pip.pypa.io/en/latest/user_guide/#requirements-files
|
||||||
|
|
||||||
Code coverage
|
Code coverage
|
||||||
-------------
|
-------------
|
||||||
|
|
|
@ -18,7 +18,7 @@ Installing Git
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Django uses `Git`_ for its source control. You can `download
|
Django uses `Git`_ for its source control. You can `download
|
||||||
<http://git-scm.com/download>`_ Git, but it's often easier to install with
|
<https://git-scm.com/download>`_ Git, but it's often easier to install with
|
||||||
your operating system's package manager.
|
your operating system's package manager.
|
||||||
|
|
||||||
Django's `Git repository`_ is hosted on `GitHub`_, and it is recommended
|
Django's `Git repository`_ is hosted on `GitHub`_, and it is recommended
|
||||||
|
@ -34,7 +34,7 @@ Note that ``user.name`` should be your real name, not your GitHub nick. GitHub
|
||||||
should know the email you use in the ``user.email`` field, as this will be
|
should know the email you use in the ``user.email`` field, as this will be
|
||||||
used to associate your commits with your GitHub account.
|
used to associate your commits with your GitHub account.
|
||||||
|
|
||||||
.. _Git: http://git-scm.com/
|
.. _Git: https://git-scm.com/
|
||||||
.. _Git repository: https://github.com/django/django/
|
.. _Git repository: https://github.com/django/django/
|
||||||
.. _GitHub: https://github.com/
|
.. _GitHub: https://github.com/
|
||||||
|
|
||||||
|
|
|
@ -427,7 +427,7 @@ Before you commit your docs, it's a good idea to run the spelling checker.
|
||||||
You'll need to install a couple packages first:
|
You'll need to install a couple packages first:
|
||||||
|
|
||||||
* `pyenchant <https://pypi.python.org/pypi/pyenchant/>`_ (which requires
|
* `pyenchant <https://pypi.python.org/pypi/pyenchant/>`_ (which requires
|
||||||
`enchant <http://www.abisource.com/projects/enchant/>`_)
|
`enchant <https://www.abisource.com/projects/enchant/>`_)
|
||||||
|
|
||||||
* `sphinxcontrib-spelling
|
* `sphinxcontrib-spelling
|
||||||
<https://pypi.python.org/pypi/sphinxcontrib-spelling/>`_
|
<https://pypi.python.org/pypi/sphinxcontrib-spelling/>`_
|
||||||
|
|
|
@ -52,8 +52,8 @@ The source code for the `Djangoproject.com <https://www.djangoproject.com/>`_
|
||||||
website can be found at `github.com/django/djangoproject.com
|
website can be found at `github.com/django/djangoproject.com
|
||||||
<https://github.com/django/djangoproject.com>`_.
|
<https://github.com/django/djangoproject.com>`_.
|
||||||
|
|
||||||
.. _Git: http://git-scm.com/
|
.. _Git: https://git-scm.com/
|
||||||
.. _documentation: http://git-scm.com/documentation
|
.. _documentation: https://git-scm.com/documentation
|
||||||
.. _branches: https://github.com/django/django/branches
|
.. _branches: https://github.com/django/django/branches
|
||||||
.. _tags: https://github.com/django/django/tags
|
.. _tags: https://github.com/django/django/tags
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,7 @@ OK, this is the fun part, where we actually push out a release!
|
||||||
#. Check `Jenkins`__ is green for the version(s) you're putting out. You
|
#. Check `Jenkins`__ is green for the version(s) you're putting out. You
|
||||||
probably shouldn't issue a release until it's green.
|
probably shouldn't issue a release until it's green.
|
||||||
|
|
||||||
__ http://djangoci.com
|
__ https://djangoci.com
|
||||||
|
|
||||||
#. A release always begins from a release branch, so you should make sure
|
#. A release always begins from a release branch, so you should make sure
|
||||||
you're on a stable branch and up-to-date. For example::
|
you're on a stable branch and up-to-date. For example::
|
||||||
|
|
|
@ -71,7 +71,7 @@ probably got the answers.
|
||||||
.. admonition:: Python 3 required!
|
.. admonition:: Python 3 required!
|
||||||
|
|
||||||
The current development version of Django doesn't support Python 2.7. Get
|
The current development version of Django doesn't support Python 2.7. Get
|
||||||
Python 3 at `Python's download page <https://www.python.org/download/>`_ or
|
Python 3 at `Python's download page <https://www.python.org/downloads/>`_ or
|
||||||
with your operating system's package manager.
|
with your operating system's package manager.
|
||||||
|
|
||||||
.. admonition:: For Windows users
|
.. admonition:: For Windows users
|
||||||
|
@ -105,7 +105,7 @@ have to download and install it, see `Git's download page`__.
|
||||||
If you're not that familiar with Git, you can always find out more about its
|
If you're not that familiar with Git, you can always find out more about its
|
||||||
commands (once it's installed) by typing ``git help`` into the command line.
|
commands (once it's installed) by typing ``git help`` into the command line.
|
||||||
|
|
||||||
__ http://git-scm.com/download
|
__ https://git-scm.com/download
|
||||||
|
|
||||||
Getting a copy of Django's development version
|
Getting a copy of Django's development version
|
||||||
==============================================
|
==============================================
|
||||||
|
@ -299,7 +299,7 @@ present in Django's official builds. If you click to view a particular build,
|
||||||
you can view the "Configuration Matrix" which shows failures broken down by
|
you can view the "Configuration Matrix" which shows failures broken down by
|
||||||
Python version and database backend.
|
Python version and database backend.
|
||||||
|
|
||||||
__ http://djangoci.com
|
__ https://djangoci.com
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ database called SQLite_ so you won't need to set up a database just yet.
|
||||||
|
|
||||||
.. _sqlite: https://sqlite.org/
|
.. _sqlite: https://sqlite.org/
|
||||||
|
|
||||||
Get the latest version of Python at https://www.python.org/download/ or with
|
Get the latest version of Python at https://www.python.org/downloads/ or with
|
||||||
your operating system's package manager.
|
your operating system's package manager.
|
||||||
|
|
||||||
.. admonition:: Django on Jython
|
.. admonition:: Django on Jython
|
||||||
|
|
|
@ -19,11 +19,10 @@ could save some of this repeated work?
|
||||||
Reusability is the way of life in Python. `The Python Package Index (PyPI)
|
Reusability is the way of life in Python. `The Python Package Index (PyPI)
|
||||||
<https://pypi.python.org/pypi>`_ has a vast range of packages you can use in
|
<https://pypi.python.org/pypi>`_ has a vast range of packages you can use in
|
||||||
your own Python programs. Check out `Django Packages
|
your own Python programs. Check out `Django Packages
|
||||||
<https://www.djangopackages.com>`_ for existing reusable apps you could
|
<https://djangopackages.org>`_ for existing reusable apps you could incorporate
|
||||||
incorporate in your project. Django itself is also just a Python package. This
|
in your project. Django itself is also just a Python package. This means that
|
||||||
means that you can take existing Python packages or Django apps and compose
|
you can take existing Python packages or Django apps and compose them into your
|
||||||
them into your own web project. You only need to write the parts that make
|
own web project. You only need to write the parts that make your project unique.
|
||||||
your project unique.
|
|
||||||
|
|
||||||
Let's say you were starting a new project that needed a polls app like the one
|
Let's say you were starting a new project that needed a polls app like the one
|
||||||
we've been working on. How do you make this app reusable? Luckily, you're well
|
we've been working on. How do you make this app reusable? Luckily, you're well
|
||||||
|
@ -257,7 +256,7 @@ this. For a small app like polls, this process isn't too difficult.
|
||||||
new package, ``django-polls-0.1.tar.gz``.
|
new package, ``django-polls-0.1.tar.gz``.
|
||||||
|
|
||||||
For more information on packaging, see Python's `Tutorial on Packaging and
|
For more information on packaging, see Python's `Tutorial on Packaging and
|
||||||
Distributing Projects <https://packaging.python.org/en/latest/distributing.html>`_.
|
Distributing Projects <https://packaging.python.org/distributing/>`_.
|
||||||
|
|
||||||
Using your own package
|
Using your own package
|
||||||
======================
|
======================
|
||||||
|
@ -303,7 +302,7 @@ the world! If this wasn't just an example, you could now:
|
||||||
|
|
||||||
* Post the package on a public repository, such as `the Python Package Index
|
* Post the package on a public repository, such as `the Python Package Index
|
||||||
(PyPI)`_. `packaging.python.org <https://packaging.python.org>`_ has `a good
|
(PyPI)`_. `packaging.python.org <https://packaging.python.org>`_ has `a good
|
||||||
tutorial <https://packaging.python.org/en/latest/distributing.html#uploading-your-project-to-pypi>`_
|
tutorial <https://packaging.python.org/distributing/#uploading-your-project-to-pypi>`_
|
||||||
for doing this.
|
for doing this.
|
||||||
|
|
||||||
Installing Python packages with virtualenv
|
Installing Python packages with virtualenv
|
||||||
|
|
|
@ -27,7 +27,7 @@ template system a programmer uses.
|
||||||
Although Django comes with a full stack for convenience, the pieces of the
|
Although Django comes with a full stack for convenience, the pieces of the
|
||||||
stack are independent of another wherever possible.
|
stack are independent of another wherever possible.
|
||||||
|
|
||||||
.. _`loose coupling and tight cohesion`: http://c2.com/cgi/wiki?CouplingAndCohesion
|
.. _`loose coupling and tight cohesion`: http://wiki.c2.com/?CouplingAndCohesion
|
||||||
|
|
||||||
.. _less-code:
|
.. _less-code:
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ as possible.
|
||||||
|
|
||||||
The `discussion of DRY on the Portland Pattern Repository`__
|
The `discussion of DRY on the Portland Pattern Repository`__
|
||||||
|
|
||||||
__ http://c2.com/cgi/wiki?DontRepeatYourself
|
__ http://wiki.c2.com/?DontRepeatYourself
|
||||||
|
|
||||||
.. _explicit-is-better-than-implicit:
|
.. _explicit-is-better-than-implicit:
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ it (its human-readable name, options like default ordering, etc.) are
|
||||||
defined in the model class; all the information needed to understand a
|
defined in the model class; all the information needed to understand a
|
||||||
given model should be stored *in* the model.
|
given model should be stored *in* the model.
|
||||||
|
|
||||||
.. _`Active Record`: http://www.martinfowler.com/eaaCatalog/activeRecord.html
|
.. _`Active Record`: https://www.martinfowler.com/eaaCatalog/activeRecord.html
|
||||||
|
|
||||||
Database API
|
Database API
|
||||||
============
|
============
|
||||||
|
|
|
@ -35,7 +35,7 @@ load the resource in a frame if the request originated from the same site. If
|
||||||
the header is set to ``DENY`` then the browser will block the resource from
|
the header is set to ``DENY`` then the browser will block the resource from
|
||||||
loading in a frame no matter which site made the request.
|
loading in a frame no matter which site made the request.
|
||||||
|
|
||||||
.. _X-Frame-Options: https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
|
.. _X-Frame-Options: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
|
||||||
|
|
||||||
Django provides a few simple ways to include this header in responses from your
|
Django provides a few simple ways to include this header in responses from your
|
||||||
site:
|
site:
|
||||||
|
@ -127,5 +127,5 @@ See also
|
||||||
|
|
||||||
A `complete list`_ of browsers supporting ``X-Frame-Options``.
|
A `complete list`_ of browsers supporting ``X-Frame-Options``.
|
||||||
|
|
||||||
.. _complete list: https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options#Browser_compatibility
|
.. _complete list: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options#Browser_compatibility
|
||||||
.. _other clickjacking prevention techniques: https://en.wikipedia.org/wiki/Clickjacking#Prevention
|
.. _other clickjacking prevention techniques: https://en.wikipedia.org/wiki/Clickjacking#Prevention
|
||||||
|
|
|
@ -7,10 +7,10 @@ GeoDjango Forms API
|
||||||
|
|
||||||
GeoDjango provides some specialized form fields and widgets in order to visually
|
GeoDjango provides some specialized form fields and widgets in order to visually
|
||||||
display and edit geolocalized data on a map. By default, they use
|
display and edit geolocalized data on a map. By default, they use
|
||||||
`OpenLayers`_-powered maps, with a base WMS layer provided by `Metacarta`_.
|
`OpenLayers`_-powered maps, with a base WMS layer provided by `NASA`_.
|
||||||
|
|
||||||
.. _OpenLayers: http://openlayers.org/
|
.. _OpenLayers: http://openlayers.org/
|
||||||
.. _Metacarta: http://www.metacarta.com/
|
.. _NASA: https://earthdata.nasa.gov/
|
||||||
|
|
||||||
Field arguments
|
Field arguments
|
||||||
===============
|
===============
|
||||||
|
|
|
@ -18,7 +18,7 @@ and spatial operators. GEOS, now an OSGeo project, was initially developed and
|
||||||
maintained by `Refractions Research`__ of Victoria, Canada.
|
maintained by `Refractions Research`__ of Victoria, Canada.
|
||||||
|
|
||||||
__ https://trac.osgeo.org/geos/
|
__ https://trac.osgeo.org/geos/
|
||||||
__ http://sourceforge.net/projects/jts-topo-suite/
|
__ https://sourceforge.net/projects/jts-topo-suite/
|
||||||
__ http://www.opengeospatial.org/standards/sfs
|
__ http://www.opengeospatial.org/standards/sfs
|
||||||
__ http://www.refractions.net/
|
__ http://www.refractions.net/
|
||||||
|
|
||||||
|
|
|
@ -257,7 +257,7 @@ Summary::
|
||||||
$ brew install gdal
|
$ brew install gdal
|
||||||
$ brew install libgeoip
|
$ brew install libgeoip
|
||||||
|
|
||||||
__ http://brew.sh/
|
__ https://brew.sh/
|
||||||
.. _Xcode: https://developer.apple.com/xcode/
|
.. _Xcode: https://developer.apple.com/xcode/
|
||||||
|
|
||||||
.. _kyngchaos:
|
.. _kyngchaos:
|
||||||
|
@ -402,8 +402,8 @@ install :ref:`postgisasb`.
|
||||||
and contains shortcuts for the ASB as well as the 'SQL Shell',
|
and contains shortcuts for the ASB as well as the 'SQL Shell',
|
||||||
which will launch a ``psql`` command window.
|
which will launch a ``psql`` command window.
|
||||||
|
|
||||||
__ http://www.enterprisedb.com/products-services-training/pgdownload
|
__ https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
|
||||||
__ http://www.enterprisedb.com
|
__ https://www.enterprisedb.com
|
||||||
|
|
||||||
.. _postgisasb:
|
.. _postgisasb:
|
||||||
|
|
||||||
|
|
|
@ -133,4 +133,4 @@ following to your ``settings.py``::
|
||||||
|
|
||||||
SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'
|
SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'
|
||||||
|
|
||||||
.. _Homebrew: http://brew.sh/
|
.. _Homebrew: https://brew.sh/
|
||||||
|
|
|
@ -278,7 +278,7 @@ A more useful index is a ``GIN`` index, which you should create using a
|
||||||
similar to PostgreSQL's ``text`` type.
|
similar to PostgreSQL's ``text`` type.
|
||||||
|
|
||||||
.. _citext: https://www.postgresql.org/docs/current/static/citext.html
|
.. _citext: https://www.postgresql.org/docs/current/static/citext.html
|
||||||
.. _the performance considerations: https://www.postgresql.org/docs/current/static/citext.html#AEN169274
|
.. _the performance considerations: https://www.postgresql.org/docs/current/static/citext.html#AEN178177
|
||||||
|
|
||||||
``HStoreField``
|
``HStoreField``
|
||||||
===============
|
===============
|
||||||
|
|
|
@ -8,7 +8,7 @@ The sitemap framework
|
||||||
Django comes with a high-level sitemap-generating framework that makes
|
Django comes with a high-level sitemap-generating framework that makes
|
||||||
creating sitemap_ XML files easy.
|
creating sitemap_ XML files easy.
|
||||||
|
|
||||||
.. _sitemap: http://www.sitemaps.org/
|
.. _sitemap: https://www.sitemaps.org/
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
========
|
========
|
||||||
|
@ -226,7 +226,7 @@ Note:
|
||||||
default priority of a page is ``0.5``. See the `sitemaps.org
|
default priority of a page is ``0.5``. See the `sitemaps.org
|
||||||
documentation`_ for more.
|
documentation`_ for more.
|
||||||
|
|
||||||
.. _sitemaps.org documentation: http://www.sitemaps.org/protocol.html#prioritydef
|
.. _sitemaps.org documentation: https://www.sitemaps.org/protocol.html#prioritydef
|
||||||
|
|
||||||
.. attribute:: Sitemap.protocol
|
.. attribute:: Sitemap.protocol
|
||||||
|
|
||||||
|
@ -244,7 +244,7 @@ Note:
|
||||||
This attribute defines the maximum number of URLs included on each page
|
This attribute defines the maximum number of URLs included on each page
|
||||||
of the sitemap. Its value should not exceed the default value of
|
of the sitemap. Its value should not exceed the default value of
|
||||||
``50000``, which is the upper limit allowed in the `Sitemaps protocol
|
``50000``, which is the upper limit allowed in the `Sitemaps protocol
|
||||||
<http://www.sitemaps.org/protocol.html#index>`_.
|
<https://www.sitemaps.org/protocol.html#index>`_.
|
||||||
|
|
||||||
.. attribute:: Sitemap.i18n
|
.. attribute:: Sitemap.i18n
|
||||||
|
|
||||||
|
@ -460,7 +460,7 @@ generate a Google News compatible sitemap:
|
||||||
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset
|
<urlset
|
||||||
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
|
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
|
||||||
{% spaceless %}
|
{% spaceless %}
|
||||||
{% for url in urlset %}
|
{% for url in urlset %}
|
||||||
|
|
|
@ -145,8 +145,8 @@ Setting the token on the AJAX request
|
||||||
|
|
||||||
Finally, you'll have to actually set the header on your AJAX request, while
|
Finally, you'll have to actually set the header on your AJAX request, while
|
||||||
protecting the CSRF token from being sent to other domains using
|
protecting the CSRF token from being sent to other domains using
|
||||||
`settings.crossDomain <https://api.jquery.com/jQuery.ajax>`_ in jQuery 1.5.1 and
|
`settings.crossDomain <https://api.jquery.com/jQuery.ajax/>`_ in jQuery 1.5.1
|
||||||
newer:
|
and newer:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
|
|
@ -721,8 +721,8 @@ Oracle notes
|
||||||
Django supports `Oracle Database Server`_ versions 12.1 and higher. Version
|
Django supports `Oracle Database Server`_ versions 12.1 and higher. Version
|
||||||
5.2 or higher of the `cx_Oracle`_ Python driver is required.
|
5.2 or higher of the `cx_Oracle`_ Python driver is required.
|
||||||
|
|
||||||
.. _`Oracle Database Server`: http://www.oracle.com/
|
.. _`Oracle Database Server`: https://www.oracle.com/
|
||||||
.. _`cx_Oracle`: http://cx-oracle.sourceforge.net/
|
.. _`cx_Oracle`: https://oracle.github.io/python-cx_Oracle/
|
||||||
|
|
||||||
In order for the ``python manage.py migrate`` command to work, your Oracle
|
In order for the ``python manage.py migrate`` command to work, your Oracle
|
||||||
database user must have privileges to run the following commands:
|
database user must have privileges to run the following commands:
|
||||||
|
|
|
@ -955,7 +955,7 @@ Python interpreter, use ``python`` as the interface name, like so::
|
||||||
django-admin shell -i python
|
django-admin shell -i python
|
||||||
|
|
||||||
.. _IPython: https://ipython.org/
|
.. _IPython: https://ipython.org/
|
||||||
.. _bpython: http://bpython-interpreter.org/
|
.. _bpython: https://bpython-interpreter.org/
|
||||||
|
|
||||||
.. django-admin-option:: --nostartup
|
.. django-admin-option:: --nostartup
|
||||||
|
|
||||||
|
|
|
@ -287,7 +287,7 @@ If you wish to submit your site to the `browser preload list`_, set the
|
||||||
you may need to set the :setting:`SECURE_PROXY_SSL_HEADER` setting.
|
you may need to set the :setting:`SECURE_PROXY_SSL_HEADER` setting.
|
||||||
|
|
||||||
.. _"Strict-Transport-Security" header: https://en.wikipedia.org/wiki/Strict_Transport_Security
|
.. _"Strict-Transport-Security" header: https://en.wikipedia.org/wiki/Strict_Transport_Security
|
||||||
.. _browser preload list: https://hstspreload.appspot.com/
|
.. _browser preload list: https://hstspreload.org/
|
||||||
|
|
||||||
.. _x-content-type-options:
|
.. _x-content-type-options:
|
||||||
|
|
||||||
|
@ -303,12 +303,9 @@ If your site serves user-uploaded files, a malicious user could upload a
|
||||||
specially-crafted file that would be interpreted as HTML or JavaScript by
|
specially-crafted file that would be interpreted as HTML or JavaScript by
|
||||||
the browser when you expected it to be something harmless.
|
the browser when you expected it to be something harmless.
|
||||||
|
|
||||||
To learn more about this header and how the browser treats it, you can
|
|
||||||
read about it on the `IE Security Blog`_.
|
|
||||||
|
|
||||||
To prevent the browser from guessing the content type and force it to
|
To prevent the browser from guessing the content type and force it to
|
||||||
always use the type provided in the ``Content-Type`` header, you can pass
|
always use the type provided in the ``Content-Type`` header, you can pass
|
||||||
the ``X-Content-Type-Options: nosniff`` header. ``SecurityMiddleware`` will
|
the `X-Content-Type-Options: nosniff`__ header. ``SecurityMiddleware`` will
|
||||||
do this for all responses if the :setting:`SECURE_CONTENT_TYPE_NOSNIFF` setting
|
do this for all responses if the :setting:`SECURE_CONTENT_TYPE_NOSNIFF` setting
|
||||||
is ``True``.
|
is ``True``.
|
||||||
|
|
||||||
|
@ -320,7 +317,7 @@ you are using Django to do something like require authorization in order to
|
||||||
download files and you cannot set the header using your Web server, this
|
download files and you cannot set the header using your Web server, this
|
||||||
setting will be useful.
|
setting will be useful.
|
||||||
|
|
||||||
.. _IE Security Blog: http://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx
|
__ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
|
||||||
|
|
||||||
.. _x-xss-protection:
|
.. _x-xss-protection:
|
||||||
|
|
||||||
|
@ -347,7 +344,7 @@ header. ``SecurityMiddleware`` will do this for all responses if the
|
||||||
sanitizing <cross-site-scripting>` all input to prevent XSS attacks.
|
sanitizing <cross-site-scripting>` all input to prevent XSS attacks.
|
||||||
|
|
||||||
.. _XSS attack: https://en.wikipedia.org/wiki/Cross-site_scripting
|
.. _XSS attack: https://en.wikipedia.org/wiki/Cross-site_scripting
|
||||||
.. _X-XSS-Protection header: http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx
|
.. _X-XSS-Protection header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
|
||||||
|
|
||||||
.. _ssl-redirect:
|
.. _ssl-redirect:
|
||||||
|
|
||||||
|
|
|
@ -414,7 +414,7 @@ https://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004
|
||||||
|
|
||||||
.. class:: Rss201rev2Feed(RssFeed)
|
.. class:: Rss201rev2Feed(RssFeed)
|
||||||
|
|
||||||
Spec: https://cyber.law.harvard.edu/rss/rss.html
|
Spec: https://cyber.harvard.edu/rss/rss.html
|
||||||
|
|
||||||
``RssUserland091Feed``
|
``RssUserland091Feed``
|
||||||
----------------------
|
----------------------
|
||||||
|
|
|
@ -301,4 +301,4 @@ to, or in lieu of custom ``field.clean()`` methods.
|
||||||
.. versionadded:: 1.11
|
.. versionadded:: 1.11
|
||||||
|
|
||||||
Uses Pillow to ensure that the ``value`` is `a valid image extension
|
Uses Pillow to ensure that the ``value`` is `a valid image extension
|
||||||
<https://pillow.readthedocs.org/en/latest/handbook/image-file-formats.html>`_.
|
<https://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html>`_.
|
||||||
|
|
|
@ -29,7 +29,7 @@ readability of your code. **All** of the suggestions below come with the caveat
|
||||||
that in your circumstances the general principle might not apply, or might even
|
that in your circumstances the general principle might not apply, or might even
|
||||||
be reversed.
|
be reversed.
|
||||||
|
|
||||||
.. _django-debug-toolbar: https://github.com/django-debug-toolbar/django-debug-toolbar/
|
.. _django-debug-toolbar: https://github.com/jazzband/django-debug-toolbar/
|
||||||
|
|
||||||
Use standard DB optimization techniques
|
Use standard DB optimization techniques
|
||||||
=======================================
|
=======================================
|
||||||
|
|
|
@ -1088,7 +1088,7 @@ For example, a ``Blog`` object ``b`` has access to a list of all related
|
||||||
All examples in this section use the sample ``Blog``, ``Author`` and ``Entry``
|
All examples in this section use the sample ``Blog``, ``Author`` and ``Entry``
|
||||||
models defined at the top of this page.
|
models defined at the top of this page.
|
||||||
|
|
||||||
.. _descriptors: http://users.rcn.com/python/download/Descriptor.htm
|
.. _descriptors: https://docs.python.org/3/howto/descriptor.html
|
||||||
|
|
||||||
One-to-many relationships
|
One-to-many relationships
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
|
@ -167,7 +167,7 @@ and the :setting:`SECRET_KEY` setting.
|
||||||
|
|
||||||
.. _`common limit of 4096 bytes`: https://tools.ietf.org/html/rfc2965#section-5.3
|
.. _`common limit of 4096 bytes`: https://tools.ietf.org/html/rfc2965#section-5.3
|
||||||
.. _`replay attacks`: https://en.wikipedia.org/wiki/Replay_attack
|
.. _`replay attacks`: https://en.wikipedia.org/wiki/Replay_attack
|
||||||
.. _`speed of your site`: http://yuiblog.com/blog/2007/03/01/performance-research-part-3/
|
.. _`speed of your site`: https://yuiblog.com/blog/2007/03/01/performance-research-part-3/
|
||||||
|
|
||||||
Using sessions in views
|
Using sessions in views
|
||||||
=======================
|
=======================
|
||||||
|
|
|
@ -10,7 +10,7 @@ Install Python
|
||||||
Being a Python Web framework, Django requires Python. See
|
Being a Python Web framework, Django requires Python. See
|
||||||
:ref:`faq-python-version-support` for details.
|
:ref:`faq-python-version-support` for details.
|
||||||
|
|
||||||
Get the latest version of Python at https://www.python.org/download/ or with
|
Get the latest version of Python at https://www.python.org/downloads/ or with
|
||||||
your operating system's package manager.
|
your operating system's package manager.
|
||||||
|
|
||||||
.. admonition:: Django on Jython
|
.. admonition:: Django on Jython
|
||||||
|
@ -119,8 +119,8 @@ database queries, Django will need permission to create a test database.
|
||||||
.. _MySQL: https://www.mysql.com/
|
.. _MySQL: https://www.mysql.com/
|
||||||
.. _psycopg2: http://initd.org/psycopg/
|
.. _psycopg2: http://initd.org/psycopg/
|
||||||
.. _SQLite: https://www.sqlite.org/
|
.. _SQLite: https://www.sqlite.org/
|
||||||
.. _cx_Oracle: http://cx-oracle.sourceforge.net/
|
.. _cx_Oracle: https://oracle.github.io/python-cx_Oracle/
|
||||||
.. _Oracle: http://www.oracle.com/
|
.. _Oracle: https://www.oracle.com/
|
||||||
|
|
||||||
.. _removing-old-versions-of-django:
|
.. _removing-old-versions-of-django:
|
||||||
|
|
||||||
|
@ -243,4 +243,4 @@ When you want to update your copy of the Django source code, just run the
|
||||||
command ``git pull`` from within the ``django`` directory. When you do this,
|
command ``git pull`` from within the ``django`` directory. When you do this,
|
||||||
Git will automatically download any changes.
|
Git will automatically download any changes.
|
||||||
|
|
||||||
.. _Git: http://git-scm.com/
|
.. _Git: https://git-scm.com/
|
||||||
|
|
|
@ -56,10 +56,10 @@ Django tools
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
`django-debug-toolbar
|
`django-debug-toolbar
|
||||||
<https://github.com/django-debug-toolbar/django-debug-toolbar/>`_ is a very
|
<https://github.com/jazzband/django-debug-toolbar/>`_ is a very handy tool that
|
||||||
handy tool that provides insights into what your code is doing and how much
|
provides insights into what your code is doing and how much time it spends
|
||||||
time it spends doing it. In particular it can show you all the SQL queries your
|
doing it. In particular it can show you all the SQL queries your page is
|
||||||
page is generating, and how long each one has taken.
|
generating, and how long each one has taken.
|
||||||
|
|
||||||
Third-party panels are also available for the toolbar, that can (for example)
|
Third-party panels are also available for the toolbar, that can (for example)
|
||||||
report on cache performance and template rendering times.
|
report on cache performance and template rendering times.
|
||||||
|
|
|
@ -831,4 +831,4 @@ Implementing a custom context processor is as simple as defining a function.
|
||||||
|
|
||||||
.. _Jinja2: http://jinja.pocoo.org/
|
.. _Jinja2: http://jinja.pocoo.org/
|
||||||
.. _DEP 182: https://github.com/django/deps/blob/master/final/0182-multiple-template-engines.rst
|
.. _DEP 182: https://github.com/django/deps/blob/master/final/0182-multiple-template-engines.rst
|
||||||
.. _Django Debug Toolbar: https://github.com/django-debug-toolbar/django-debug-toolbar
|
.. _Django Debug Toolbar: https://github.com/jazzband/django-debug-toolbar
|
||||||
|
|
|
@ -740,5 +740,5 @@ listed here because of the ``source`` flag passed to the previous command.
|
||||||
For more options like annotated HTML listings detailing missed lines, see the
|
For more options like annotated HTML listings detailing missed lines, see the
|
||||||
`coverage.py`_ docs.
|
`coverage.py`_ docs.
|
||||||
|
|
||||||
.. _coverage.py: http://nedbatchelder.com/code/coverage/
|
.. _coverage.py: http://coverage.readthedocs.io/
|
||||||
.. _install coverage.py: https://pypi.python.org/pypi/coverage
|
.. _install coverage.py: https://pypi.python.org/pypi/coverage
|
||||||
|
|
Loading…
Reference in New Issue