Kaydet (Commit) eba6dff5 authored tarafından Sean Wang's avatar Sean Wang Kaydeden (comit) Tim Graham

Fixed #24358 -- Corrected code-block directives for console sessions.

üst ea3168dc
...@@ -24,7 +24,7 @@ The uWSGI wiki describes several `installation procedures`_. Using pip, the ...@@ -24,7 +24,7 @@ The uWSGI wiki describes several `installation procedures`_. Using pip, the
Python package manager, you can install any uWSGI version with a single Python package manager, you can install any uWSGI version with a single
command. For example: command. For example:
.. code-block:: bash .. code-block:: console
# Install current stable version. # Install current stable version.
$ pip install uwsgi $ pip install uwsgi
......
...@@ -24,7 +24,7 @@ The ReportLab library is `available on PyPI`_. A `user guide`_ (not ...@@ -24,7 +24,7 @@ The ReportLab library is `available on PyPI`_. A `user guide`_ (not
coincidentally, a PDF file) is also available for download. coincidentally, a PDF file) is also available for download.
You can install ReportLab with ``pip``: You can install ReportLab with ``pip``:
.. code-block:: bash .. code-block:: console
$ pip install reportlab $ pip install reportlab
......
...@@ -52,7 +52,7 @@ might want to set up a new environment with all the dependencies first. ...@@ -52,7 +52,7 @@ might want to set up a new environment with all the dependencies first.
Exactly which steps you will need to take depends on your installation process. Exactly which steps you will need to take depends on your installation process.
The most convenient way is to use pip_ with the ``--upgrade`` or ``-U`` flag: The most convenient way is to use pip_ with the ``--upgrade`` or ``-U`` flag:
.. code-block:: bash .. code-block:: console
$ pip install -U Django $ pip install -U Django
...@@ -74,7 +74,7 @@ warnings are silenced by default. It is useful to turn the warnings on so they ...@@ -74,7 +74,7 @@ warnings are silenced by default. It is useful to turn the warnings on so they
are shown in the test output (you can also use the flag if you test your app are shown in the test output (you can also use the flag if you test your app
manually using ``manage.py runserver``): manually using ``manage.py runserver``):
.. code-block:: bash .. code-block:: console
$ python -Wall manage.py test $ python -Wall manage.py test
......
...@@ -48,7 +48,7 @@ Imports ...@@ -48,7 +48,7 @@ Imports
Quick start: Quick start:
.. code-block:: bash .. code-block:: console
$ pip install isort $ pip install isort
$ isort -rc . $ isort -rc .
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
Unit tests Unit tests
========== ==========
.. highlight:: console
Django comes with a test suite of its own, in the ``tests`` directory of the Django comes with a test suite of its own, in the ``tests`` directory of the
code base. It's our policy to make sure all tests pass at all times. code base. It's our policy to make sure all tests pass at all times.
...@@ -26,9 +28,7 @@ the other optional test dependencies. ...@@ -26,9 +28,7 @@ the other optional test dependencies.
Running the tests requires a Django settings module that defines the Running the tests requires a Django settings module that defines the
databases to use. To make it easy to get started, Django provides and uses a databases to use. To make it easy to get started, Django provides and uses a
sample settings module that uses the SQLite database. To run the tests: sample settings module that uses the SQLite database. To run the tests::
.. code-block:: bash
$ git clone https://github.com/django/django.git django-repo $ git clone https://github.com/django/django.git django-repo
$ cd django-repo/tests $ cd django-repo/tests
...@@ -96,9 +96,7 @@ tests by appending the names of the test modules to ``runtests.py`` on the ...@@ -96,9 +96,7 @@ tests by appending the names of the test modules to ``runtests.py`` on the
command line. command line.
For example, if you'd like to run tests only for generic relations and For example, if you'd like to run tests only for generic relations and
internationalization, type: internationalization, type::
.. code-block:: bash
$ ./runtests.py --settings=path.to.settings generic_relations i18n $ ./runtests.py --settings=path.to.settings generic_relations i18n
...@@ -107,15 +105,11 @@ directory name there is the name of a test. ...@@ -107,15 +105,11 @@ directory name there is the name of a test.
If you just want to run a particular class of tests, you can specify a list of If you just want to run a particular class of tests, you can specify a list of
paths to individual test classes. For example, to run the ``TranslationTests`` paths to individual test classes. For example, to run the ``TranslationTests``
of the ``i18n`` module, type: of the ``i18n`` module, type::
.. code-block:: bash
$ ./runtests.py --settings=path.to.settings i18n.tests.TranslationTests $ ./runtests.py --settings=path.to.settings i18n.tests.TranslationTests
Going beyond that, you can specify an individual test method like this: Going beyond that, you can specify an individual test method like this::
.. code-block:: bash
$ ./runtests.py --settings=path.to.settings i18n.tests.TranslationTests.test_lazy_objects $ ./runtests.py --settings=path.to.settings i18n.tests.TranslationTests.test_lazy_objects
...@@ -125,9 +119,7 @@ Running the Selenium tests ...@@ -125,9 +119,7 @@ Running the Selenium tests
Some tests require Selenium and a Web browser (Firefox, Google Chrome, or Some tests require Selenium and a Web browser (Firefox, Google Chrome, or
Internet Explorer). To allow those tests to be run rather than skipped, you must Internet Explorer). To allow those tests to be run rather than skipped, you must
install the selenium_ package into your Python path and run the tests with the install the selenium_ package into your Python path and run the tests with the
``--selenium`` option: ``--selenium`` option::
.. code-block:: bash
$ ./runtests.py --settings=test_sqlite --selenium admin_inlines $ ./runtests.py --settings=test_sqlite --selenium admin_inlines
...@@ -154,9 +146,7 @@ dependencies: ...@@ -154,9 +146,7 @@ dependencies:
You can find these dependencies in `pip requirements files`_ inside the You can find these dependencies in `pip requirements files`_ inside the
``tests/requirements`` directory of the Django source tree and install them ``tests/requirements`` directory of the Django source tree and install them
like so: like so::
.. code-block:: bash
$ pip install -r tests/requirements/py3.txt # Python 2: py2.txt $ pip install -r tests/requirements/py3.txt # Python 2: py2.txt
...@@ -193,15 +183,11 @@ Contributors are encouraged to run coverage on the test suite to identify areas ...@@ -193,15 +183,11 @@ Contributors are encouraged to run coverage on the test suite to identify areas
that need additional tests. The coverage tool installation and use is described that need additional tests. The coverage tool installation and use is described
in :ref:`testing code coverage<topics-testing-code-coverage>`. in :ref:`testing code coverage<topics-testing-code-coverage>`.
To run coverage on the Django test suite using the standard test settings: To run coverage on the Django test suite using the standard test settings::
.. code-block:: bash
$ coverage run ./runtests.py --settings=test_sqlite $ coverage run ./runtests.py --settings=test_sqlite
After running coverage, generate the html report by running: After running coverage, generate the html report by running::
.. code-block:: bash
$ coverage html $ coverage html
...@@ -230,9 +216,7 @@ Many test failures with ``UnicodeEncodeError`` ...@@ -230,9 +216,7 @@ Many test failures with ``UnicodeEncodeError``
If the ``locales`` package is not installed, some tests will fail with a If the ``locales`` package is not installed, some tests will fail with a
``UnicodeEncodeError``. ``UnicodeEncodeError``.
You can resolve this on Debian-based systems, for example, by running: You can resolve this on Debian-based systems, for example, by running::
.. code-block:: bash
$ apt-get install locales $ apt-get install locales
$ dpkg-reconfigure locales $ dpkg-reconfigure locales
...@@ -249,9 +233,7 @@ it possible to identify a small number of tests that may be related to the ...@@ -249,9 +233,7 @@ it possible to identify a small number of tests that may be related to the
failure. failure.
For example, suppose that the failing test that works on its own is For example, suppose that the failing test that works on its own is
``ModelTest.test_eq``, then using: ``ModelTest.test_eq``, then using::
.. code-block:: bash
$ ./runtests.py --bisect basic.tests.ModelTest.test_eq $ ./runtests.py --bisect basic.tests.ModelTest.test_eq
...@@ -265,9 +247,7 @@ failing tests is minimized. ...@@ -265,9 +247,7 @@ failing tests is minimized.
The ``--pair`` option runs the given test alongside every other test from the The ``--pair`` option runs the given test alongside every other test from the
suite, letting you check if another test has side-effects that cause the suite, letting you check if another test has side-effects that cause the
failure. So: failure. So::
.. code-block:: bash
$ ./runtests.py --pair basic.tests.ModelTest.test_eq $ ./runtests.py --pair basic.tests.ModelTest.test_eq
...@@ -276,25 +256,19 @@ will pair ``test_eq`` with every test label. ...@@ -276,25 +256,19 @@ will pair ``test_eq`` with every test label.
With both ``--bisect`` and ``--pair``, if you already suspect which cases With both ``--bisect`` and ``--pair``, if you already suspect which cases
might be responsible for the failure, you may limit tests to be cross-analyzed might be responsible for the failure, you may limit tests to be cross-analyzed
by :ref:`specifying further test labels <runtests-specifying-labels>` after by :ref:`specifying further test labels <runtests-specifying-labels>` after
the first one: the first one::
.. code-block:: bash
$ ./runtests.py --pair basic.tests.ModelTest.test_eq queries transactions $ ./runtests.py --pair basic.tests.ModelTest.test_eq queries transactions
You can also try running any set of tests in reverse using the ``--reverse`` You can also try running any set of tests in reverse using the ``--reverse``
option in order to verify that executing tests in a different order does not option in order to verify that executing tests in a different order does not
cause any trouble: cause any trouble::
.. code-block:: bash
$ ./runtests.py basic --reverse $ ./runtests.py basic --reverse
If you wish to examine the SQL being run in failing tests, you can turn on If you wish to examine the SQL being run in failing tests, you can turn on
:ref:`SQL logging <django-db-logger>` using the ``--debug-sql`` option. If you :ref:`SQL logging <django-db-logger>` using the ``--debug-sql`` option. If you
combine this with ``--verbosity=2``, all SQL queries will be output. combine this with ``--verbosity=2``, all SQL queries will be output::
.. code-block:: bash
$ ./runtests.py basic --debug-sql $ ./runtests.py basic --debug-sql
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
How is Django Formed? How is Django Formed?
===================== =====================
.. highlight:: console
This document explains how to release Django. This document explains how to release Django.
**Please, keep these instructions up-to-date if you make changes!** The point **Please, keep these instructions up-to-date if you make changes!** The point
...@@ -54,9 +56,7 @@ You'll need a few things before getting started: ...@@ -54,9 +56,7 @@ You'll need a few things before getting started:
``you@example.com`` is the email address associated with the key you want to ``you@example.com`` is the email address associated with the key you want to
use. use.
* An install of some required Python packages: * An install of some required Python packages::
.. code-block:: bash
$ pip install wheel twine $ pip install wheel twine
...@@ -117,7 +117,7 @@ any time leading up to the actual release: ...@@ -117,7 +117,7 @@ any time leading up to the actual release:
rather than the releaser, but here are the steps. Provided you have an rather than the releaser, but here are the steps. Provided you have an
account on Transifex:: account on Transifex::
python scripts/manage_translations.py fetch $ python scripts/manage_translations.py fetch
and then commit the changed/added files (both .po and .mo). Sometimes there and then commit the changed/added files (both .po and .mo). Sometimes there
are validation errors which need to be debugged, so avoid doing this task are validation errors which need to be debugged, so avoid doing this task
...@@ -148,16 +148,16 @@ OK, this is the fun part, where we actually push out a release! ...@@ -148,16 +148,16 @@ OK, this is the fun part, where we actually push out a release!
#. 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::
git checkout stable/1.5.x $ git checkout stable/1.5.x
git pull $ git pull
#. If this is a security release, merge the appropriate patches from #. If this is a security release, merge the appropriate patches from
``django-private``. Rebase these patches as necessary to make each one a ``django-private``. Rebase these patches as necessary to make each one a
simple commit on the release branch rather than a merge commit. To ensure simple commit on the release branch rather than a merge commit. To ensure
this, merge them with the ``--ff-only`` flag; for example:: this, merge them with the ``--ff-only`` flag; for example::
git checkout stable/1.5.x $ git checkout stable/1.5.x
git merge --ff-only security/1.5.x $ git merge --ff-only security/1.5.x
(This assumes ``security/1.5.x`` is a branch in the ``django-private`` repo (This assumes ``security/1.5.x`` is a branch in the ``django-private`` repo
containing the necessary security patches for the next release in the 1.5 containing the necessary security patches for the next release in the 1.5
...@@ -193,7 +193,7 @@ OK, this is the fun part, where we actually push out a release! ...@@ -193,7 +193,7 @@ OK, this is the fun part, where we actually push out a release!
#. Tag the release using ``git tag``. For example:: #. Tag the release using ``git tag``. For example::
git tag --sign --message="Tag 1.5.1" 1.5.1 $ git tag --sign --message="Tag 1.5.1" 1.5.1
You can check your work by running ``git tag --verify <tag>``. You can check your work by running ``git tag --verify <tag>``.
...@@ -205,9 +205,7 @@ OK, this is the fun part, where we actually push out a release! ...@@ -205,9 +205,7 @@ OK, this is the fun part, where we actually push out a release!
create the release packages in a ``dist/`` directory. Note that we don't create the release packages in a ``dist/`` directory. Note that we don't
publish wheel files for 1.4. publish wheel files for 1.4.
#. Generate the hashes of the release packages: #. Generate the hashes of the release packages::
.. code-block:: bash
$ cd dist $ cd dist
$ md5sum * $ md5sum *
...@@ -217,7 +215,9 @@ OK, this is the fun part, where we actually push out a release! ...@@ -217,7 +215,9 @@ OK, this is the fun part, where we actually push out a release!
#. Create a "checksums" file, ``Django-<<VERSION>>.checksum.txt`` containing #. Create a "checksums" file, ``Django-<<VERSION>>.checksum.txt`` containing
the hashes and release information. Start with this template and insert the the hashes and release information. Start with this template and insert the
correct version, date, GPG key ID (from correct version, date, GPG key ID (from
``gpg --list-keys --keyid-format LONG``), release URL, and checksums:: ``gpg --list-keys --keyid-format LONG``), release URL, and checksums:
.. code-block:: text
This file contains MD5, SHA1, and SHA256 checksums for the source-code This file contains MD5, SHA1, and SHA256 checksums for the source-code
tarball of Django <<VERSION>>, released <<DATE>>. tarball of Django <<VERSION>>, released <<DATE>>.
...@@ -276,22 +276,16 @@ Making the release(s) available to the public ...@@ -276,22 +276,16 @@ Making the release(s) available to the public
Now you're ready to actually put the release out there. To do this: Now you're ready to actually put the release out there. To do this:
#. Upload the release package(s) to the djangoproject server, replacing #. Upload the release package(s) to the djangoproject server, replacing
A.B. with the appropriate version number, e.g. 1.5 for a 1.5.x release: A.B. with the appropriate version number, e.g. 1.5 for a 1.5.x release::
.. code-block:: bash
$ scp Django-* djangoproject.com:/home/www/www/media/releases/A.B $ scp Django-* djangoproject.com:/home/www/www/media/releases/A.B
#. Upload the checksum file(s): #. Upload the checksum file(s)::
.. code-block:: bash
$ scp Django-A.B.C.checksum.txt.asc djangoproject.com:/home/www/www/media/pgp/Django-A.B.C.checksum.txt $ scp Django-A.B.C.checksum.txt.asc djangoproject.com:/home/www/www/media/pgp/Django-A.B.C.checksum.txt
#. Test that the release packages install correctly using ``easy_install`` #. Test that the release packages install correctly using ``easy_install``
and ``pip``. Here's one method (which requires `virtualenvwrapper`__): and ``pip``. Here's one method (which requires `virtualenvwrapper`__)::
.. code-block:: bash
$ RELEASE_VERSION='1.7.2' $ RELEASE_VERSION='1.7.2'
$ MAJOR_VERSION=`echo $RELEASE_VERSION| cut -c 1-3` $ MAJOR_VERSION=`echo $RELEASE_VERSION| cut -c 1-3`
...@@ -318,9 +312,7 @@ Now you're ready to actually put the release out there. To do this: ...@@ -318,9 +312,7 @@ Now you're ready to actually put the release out there. To do this:
correct (proper version numbers, no stray ``.pyc`` or other undesirable correct (proper version numbers, no stray ``.pyc`` or other undesirable
files). files).
#. Upload the release packages to PyPI: #. Upload the release packages to PyPI::
.. code-block:: bash
$ twine upload -s dist/* $ twine upload -s dist/*
...@@ -334,7 +326,7 @@ Now you're ready to actually put the release out there. To do this: ...@@ -334,7 +326,7 @@ Now you're ready to actually put the release out there. To do this:
#. Make the blog post announcing the release live. #. Make the blog post announcing the release live.
#. For a new version release (e.g. 1.5, 1.6), update the default stable version #. For a new version release (e.g. 1.5, 1.6), update the default stable version
of the docs by flipping the ``is_default`` flag to ``True`` on the of the docs by flipping the ``is_default`` flag to `deployment/wsgi/uwsgi.html`True`` on the
appropriate ``DocumentRelease`` object in the ``docs.djangoproject.com`` appropriate ``DocumentRelease`` object in the ``docs.djangoproject.com``
database (this will automatically flip it to ``False`` for all database (this will automatically flip it to ``False`` for all
others); you can do this using the site's admin. others); you can do this using the site's admin.
......
...@@ -51,7 +51,7 @@ Install it ...@@ -51,7 +51,7 @@ Install it
Next, run the Django command-line utility to create the database tables Next, run the Django command-line utility to create the database tables
automatically: automatically:
.. code-block:: bash .. code-block:: console
$ python manage.py migrate $ python manage.py migrate
......
...@@ -15,7 +15,7 @@ It'll consist of two parts: ...@@ -15,7 +15,7 @@ It'll consist of two parts:
We'll assume you have :doc:`Django installed </intro/install>` already. You can We'll assume you have :doc:`Django installed </intro/install>` already. You can
tell Django is installed and which version by running the following command: tell Django is installed and which version by running the following command:
.. code-block:: bash .. code-block:: console
$ python -c "import django; print(django.get_version())" $ python -c "import django; print(django.get_version())"
...@@ -51,7 +51,7 @@ application-specific settings. ...@@ -51,7 +51,7 @@ application-specific settings.
From the command line, ``cd`` into a directory where you'd like to store your From the command line, ``cd`` into a directory where you'd like to store your
code, then run the following command: code, then run the following command:
.. code-block:: bash .. code-block:: console
$ django-admin startproject mysite $ django-admin startproject mysite
...@@ -190,7 +190,7 @@ Some of these applications makes use of at least one database table, though, ...@@ -190,7 +190,7 @@ Some of these applications makes use of at least one database table, though,
so we need to create the tables in the database before we can use them. To do so we need to create the tables in the database before we can use them. To do
that, run the following command: that, run the following command:
.. code-block:: bash .. code-block:: console
$ python manage.py migrate $ python manage.py migrate
...@@ -217,7 +217,7 @@ The development server ...@@ -217,7 +217,7 @@ The development server
Let's verify your Django project works. Change into the outer :file:`mysite` directory, if Let's verify your Django project works. Change into the outer :file:`mysite` directory, if
you haven't already, and run the following commands: you haven't already, and run the following commands:
.. code-block:: bash .. code-block:: console
$ python manage.py runserver $ python manage.py runserver
...@@ -255,7 +255,7 @@ It worked! ...@@ -255,7 +255,7 @@ It worked!
it as a command-line argument. For instance, this command starts the server it as a command-line argument. For instance, this command starts the server
on port 8080: on port 8080:
.. code-block:: bash .. code-block:: console
$ python manage.py runserver 8080 $ python manage.py runserver 8080
...@@ -263,7 +263,7 @@ It worked! ...@@ -263,7 +263,7 @@ It worked!
listen on all public IPs (useful if you want to show off your work on other listen on all public IPs (useful if you want to show off your work on other
computers), use: computers), use:
.. code-block:: bash .. code-block:: console
$ python manage.py runserver 0.0.0.0:8000 $ python manage.py runserver 0.0.0.0:8000
...@@ -305,7 +305,7 @@ imported as its own top-level module, rather than a submodule of ``mysite``. ...@@ -305,7 +305,7 @@ imported as its own top-level module, rather than a submodule of ``mysite``.
To create your app, make sure you're in the same directory as :file:`manage.py` To create your app, make sure you're in the same directory as :file:`manage.py`
and type this command: and type this command:
.. code-block:: bash .. code-block:: console
$ python manage.py startapp polls $ python manage.py startapp polls
...@@ -434,7 +434,7 @@ look like this: ...@@ -434,7 +434,7 @@ look like this:
Now Django knows to include the ``polls`` app. Let's run another command: Now Django knows to include the ``polls`` app. Let's run another command:
.. code-block:: bash .. code-block:: console
$ python manage.py makemigrations polls $ python manage.py makemigrations polls
...@@ -464,7 +464,7 @@ schema automatically - that's called :djadmin:`migrate`, and we'll come to it in ...@@ -464,7 +464,7 @@ schema automatically - that's called :djadmin:`migrate`, and we'll come to it in
moment - but first, let's see what SQL that migration would run. The moment - but first, let's see what SQL that migration would run. The
:djadmin:`sqlmigrate` command takes migration names and returns their SQL: :djadmin:`sqlmigrate` command takes migration names and returns their SQL:
.. code-block:: bash .. code-block:: console
$ python manage.py sqlmigrate polls 0001 $ python manage.py sqlmigrate polls 0001
...@@ -534,7 +534,7 @@ your project without making migrations or touching the database. ...@@ -534,7 +534,7 @@ your project without making migrations or touching the database.
Now, run :djadmin:`migrate` again to create those model tables in your database: Now, run :djadmin:`migrate` again to create those model tables in your database:
.. code-block:: bash .. code-block:: console
$ python manage.py migrate $ python manage.py migrate
Operations to perform: Operations to perform:
...@@ -577,7 +577,7 @@ Playing with the API ...@@ -577,7 +577,7 @@ Playing with the API
Now, let's hop into the interactive Python shell and play around with the free Now, let's hop into the interactive Python shell and play around with the free
API Django gives you. To invoke the Python shell, use this command: API Django gives you. To invoke the Python shell, use this command:
.. code-block:: bash .. code-block:: console
$ python manage.py shell $ python manage.py shell
......
...@@ -27,7 +27,7 @@ Creating an admin user ...@@ -27,7 +27,7 @@ Creating an admin user
First we'll need to create a user who can login to the admin site. Run the First we'll need to create a user who can login to the admin site. Run the
following command: following command:
.. code-block:: bash .. code-block:: console
$ python manage.py createsuperuser $ python manage.py createsuperuser
...@@ -60,7 +60,7 @@ server and explore it. ...@@ -60,7 +60,7 @@ server and explore it.
Recall from Tutorial 1 that you start the development server like so: Recall from Tutorial 1 that you start the development server like so:
.. code-block:: bash .. code-block:: console
$ python manage.py runserver $ python manage.py runserver
...@@ -522,7 +522,7 @@ template directory in the source code of Django itself ...@@ -522,7 +522,7 @@ template directory in the source code of Django itself
If you have difficulty finding where the Django source files are located If you have difficulty finding where the Django source files are located
on your system, run the following command: on your system, run the following command:
.. code-block:: bash .. code-block:: console
$ python -c " $ python -c "
import sys import sys
......
...@@ -150,7 +150,7 @@ Unix ``grep`` utility to search for a phrase in all of the documentation. For ...@@ -150,7 +150,7 @@ Unix ``grep`` utility to search for a phrase in all of the documentation. For
example, this will show you each mention of the phrase "max_length" in any example, this will show you each mention of the phrase "max_length" in any
Django document: Django document:
.. code-block:: bash .. code-block:: console
$ grep -r max_length /path/to/django/docs/ $ grep -r max_length /path/to/django/docs/
...@@ -163,14 +163,14 @@ You can get a local copy of the HTML documentation following a few easy steps: ...@@ -163,14 +163,14 @@ You can get a local copy of the HTML documentation following a few easy steps:
plain text to HTML. You'll need to install Sphinx by either downloading plain text to HTML. You'll need to install Sphinx by either downloading
and installing the package from the Sphinx Web site, or with ``pip``: and installing the package from the Sphinx Web site, or with ``pip``:
.. code-block:: bash .. code-block:: console
$ pip install Sphinx $ pip install Sphinx
* Then, just use the included ``Makefile`` to turn the documentation into * Then, just use the included ``Makefile`` to turn the documentation into
HTML: HTML:
.. code-block:: bash .. code-block:: console
$ cd path/to/django/docs $ cd path/to/django/docs
$ make html $ make html
......
...@@ -58,7 +58,7 @@ __ http://www.gaia-gis.it/gaia-sins/ ...@@ -58,7 +58,7 @@ __ http://www.gaia-gis.it/gaia-sins/
On Debian/Ubuntu, you are advised to install the following packages which will On Debian/Ubuntu, you are advised to install the following packages which will
install, directly or by dependency, the required geospatial libraries: install, directly or by dependency, the required geospatial libraries:
.. code-block:: bash .. code-block:: console
$ sudo apt-get install binutils libproj-dev gdal-bin $ sudo apt-get install binutils libproj-dev gdal-bin
......
...@@ -56,7 +56,7 @@ First, create a spatial database for your project. ...@@ -56,7 +56,7 @@ First, create a spatial database for your project.
If you are using PostGIS, create the database from the :ref:`spatial database If you are using PostGIS, create the database from the :ref:`spatial database
template <spatialdb_template>`: template <spatialdb_template>`:
.. code-block:: bash .. code-block:: console
$ createdb -T template_postgis geodjango $ createdb -T template_postgis geodjango
...@@ -66,7 +66,7 @@ template <spatialdb_template>`: ...@@ -66,7 +66,7 @@ template <spatialdb_template>`:
create a database. To create a user with ``CREATE DATABASE`` privileges in create a database. To create a user with ``CREATE DATABASE`` privileges in
PostgreSQL, use the following commands: PostgreSQL, use the following commands:
.. code-block:: bash .. code-block:: console
$ sudo su - postgres $ sudo su - postgres
$ createuser --createdb geo $ createuser --createdb geo
...@@ -84,14 +84,14 @@ Create a New Project ...@@ -84,14 +84,14 @@ Create a New Project
Use the standard ``django-admin`` script to create a project called Use the standard ``django-admin`` script to create a project called
``geodjango``: ``geodjango``:
.. code-block:: bash .. code-block:: console
$ django-admin startproject geodjango $ django-admin startproject geodjango
This will initialize a new project. Now, create a ``world`` Django application This will initialize a new project. Now, create a ``world`` Django application
within the ``geodjango`` project: within the ``geodjango`` project:
.. code-block:: bash .. code-block:: console
$ cd geodjango $ cd geodjango
$ python manage.py startapp world $ python manage.py startapp world
...@@ -137,7 +137,7 @@ The world borders data is available in this `zip file`__. Create a ``data`` ...@@ -137,7 +137,7 @@ The world borders data is available in this `zip file`__. Create a ``data``
directory in the ``world`` application, download the world borders data, and directory in the ``world`` application, download the world borders data, and
unzip. On GNU/Linux platforms, use the following commands: unzip. On GNU/Linux platforms, use the following commands:
.. code-block:: bash .. code-block:: console
$ mkdir world/data $ mkdir world/data
$ cd world/data $ cd world/data
...@@ -166,7 +166,7 @@ Use ``ogrinfo`` to examine spatial data ...@@ -166,7 +166,7 @@ Use ``ogrinfo`` to examine spatial data
The GDAL ``ogrinfo`` utility allows examining the metadata of shapefiles or The GDAL ``ogrinfo`` utility allows examining the metadata of shapefiles or
other vector data sources: other vector data sources:
.. code-block:: bash .. code-block:: console
$ ogrinfo world/data/TM_WORLD_BORDERS-0.3.shp $ ogrinfo world/data/TM_WORLD_BORDERS-0.3.shp
INFO: Open of `world/data/TM_WORLD_BORDERS-0.3.shp' INFO: Open of `world/data/TM_WORLD_BORDERS-0.3.shp'
...@@ -177,7 +177,7 @@ other vector data sources: ...@@ -177,7 +177,7 @@ other vector data sources:
layer contains polygon data. To find out more, we'll specify the layer name layer contains polygon data. To find out more, we'll specify the layer name
and use the ``-so`` option to get only the important summary information: and use the ``-so`` option to get only the important summary information:
.. code-block:: bash .. code-block:: console
$ ogrinfo -so world/data/TM_WORLD_BORDERS-0.3.shp TM_WORLD_BORDERS-0.3 $ ogrinfo -so world/data/TM_WORLD_BORDERS-0.3.shp TM_WORLD_BORDERS-0.3
INFO: Open of `world/data/TM_WORLD_BORDERS-0.3.shp' INFO: Open of `world/data/TM_WORLD_BORDERS-0.3.shp'
...@@ -267,7 +267,7 @@ Run ``migrate`` ...@@ -267,7 +267,7 @@ Run ``migrate``
After defining your model, you need to sync it with the database. First, After defining your model, you need to sync it with the database. First,
create a database migration: create a database migration:
.. code-block:: bash .. code-block:: console
$ python manage.py makemigrations $ python manage.py makemigrations
Migrations for 'world': Migrations for 'world':
...@@ -277,7 +277,7 @@ create a database migration: ...@@ -277,7 +277,7 @@ create a database migration:
Let's look at the SQL that will generate the table for the ``WorldBorder`` Let's look at the SQL that will generate the table for the ``WorldBorder``
model: model:
.. code-block:: bash .. code-block:: console
$ python manage.py sqlmigrate world 0001 $ python manage.py sqlmigrate world 0001
...@@ -314,7 +314,7 @@ This command should produce the following output: ...@@ -314,7 +314,7 @@ This command should produce the following output:
If this looks correct, run :djadmin:`migrate` to create this table in the If this looks correct, run :djadmin:`migrate` to create this table in the
database: database:
.. code-block:: bash .. code-block:: console
$ python manage.py migrate $ python manage.py migrate
Operations to perform: Operations to perform:
...@@ -351,7 +351,7 @@ library that can work with all the vector data sources that OGR supports. ...@@ -351,7 +351,7 @@ library that can work with all the vector data sources that OGR supports.
First, invoke the Django shell: First, invoke the Django shell:
.. code-block:: bash .. code-block:: console
$ python manage.py shell $ python manage.py shell
...@@ -515,7 +515,7 @@ A few notes about what's going on: ...@@ -515,7 +515,7 @@ A few notes about what's going on:
Afterwards, invoke the Django shell from the ``geodjango`` project directory: Afterwards, invoke the Django shell from the ``geodjango`` project directory:
.. code-block:: bash .. code-block:: console
$ python manage.py shell $ python manage.py shell
...@@ -537,7 +537,7 @@ and generates a model definition and ``LayerMapping`` dictionary automatically. ...@@ -537,7 +537,7 @@ and generates a model definition and ``LayerMapping`` dictionary automatically.
The general usage of the command goes as follows: The general usage of the command goes as follows:
.. code-block:: bash .. code-block:: console
$ python manage.py ogrinspect [options] <data_source> <model_name> [options] $ python manage.py ogrinspect [options] <data_source> <model_name> [options]
...@@ -548,7 +548,7 @@ be used to further define how the model is generated. ...@@ -548,7 +548,7 @@ be used to further define how the model is generated.
For example, the following command nearly reproduces the ``WorldBorder`` model For example, the following command nearly reproduces the ``WorldBorder`` model
and mapping dictionary created above, automatically: and mapping dictionary created above, automatically:
.. code-block:: bash .. code-block:: console
$ python manage.py ogrinspect world/data/TM_WORLD_BORDERS-0.3.shp WorldBorder \ $ python manage.py ogrinspect world/data/TM_WORLD_BORDERS-0.3.shp WorldBorder \
--srid=4326 --mapping --multi --srid=4326 --mapping --multi
...@@ -609,7 +609,7 @@ GeoDjango adds spatial lookups to the Django ORM. For example, you ...@@ -609,7 +609,7 @@ GeoDjango adds spatial lookups to the Django ORM. For example, you
can find the country in the ``WorldBorder`` table that contains can find the country in the ``WorldBorder`` table that contains
a particular point. First, fire up the management shell: a particular point. First, fire up the management shell:
.. code-block:: bash .. code-block:: console
$ python manage.py shell $ python manage.py shell
...@@ -753,13 +753,13 @@ Next, edit your ``urls.py`` in the ``geodjango`` application folder as follows:: ...@@ -753,13 +753,13 @@ Next, edit your ``urls.py`` in the ``geodjango`` application folder as follows::
Create an admin user: Create an admin user:
.. code-block:: bash .. code-block:: console
$ python manage.py createsuperuser $ python manage.py createsuperuser
Next, start up the Django development server: Next, start up the Django development server:
.. code-block:: bash .. code-block:: console
$ python manage.py runserver $ python manage.py runserver
......
...@@ -38,7 +38,7 @@ be consistent, but any example can use ``manage.py`` just as well. ...@@ -38,7 +38,7 @@ be consistent, but any example can use ``manage.py`` just as well.
Usage Usage
===== =====
.. code-block:: bash .. code-block:: console
$ django-admin <command> [options] $ django-admin <command> [options]
$ manage.py <command> [options] $ manage.py <command> [options]
......
...@@ -556,7 +556,7 @@ need to reload your data. Do this after you have made the change to using ...@@ -556,7 +556,7 @@ need to reload your data. Do this after you have made the change to using
To upgrade each application to use a ``DecimalField``, you can do the To upgrade each application to use a ``DecimalField``, you can do the
following, replacing ``<app>`` in the code below with each app's name: following, replacing ``<app>`` in the code below with each app's name:
.. code-block:: bash .. code-block:: console
$ ./manage.py dumpdata --format=xml <app> > data-dump.xml $ ./manage.py dumpdata --format=xml <app> > data-dump.xml
$ ./manage.py reset <app> $ ./manage.py reset <app>
...@@ -685,13 +685,13 @@ Subcommands must now precede options ...@@ -685,13 +685,13 @@ Subcommands must now precede options
``django-admin.py`` and ``manage.py`` now require subcommands to precede ``django-admin.py`` and ``manage.py`` now require subcommands to precede
options. So: options. So:
.. code-block:: bash .. code-block:: console
$ django-admin.py --settings=foo.bar runserver $ django-admin.py --settings=foo.bar runserver
...no longer works and should be changed to: ...no longer works and should be changed to:
.. code-block:: bash .. code-block:: console
$ django-admin.py runserver --settings=foo.bar $ django-admin.py runserver --settings=foo.bar
......
...@@ -34,7 +34,7 @@ but may not be mandatory depending on your particular database backend, ...@@ -34,7 +34,7 @@ but may not be mandatory depending on your particular database backend,
operating system and time zone. If you encounter an exception querying dates operating system and time zone. If you encounter an exception querying dates
or times, please try installing it before filing a bug. It's as simple as: or times, please try installing it before filing a bug. It's as simple as:
.. code-block:: bash .. code-block:: console
$ pip install pytz $ pip install pytz
......
...@@ -140,9 +140,9 @@ uninstalling is as simple as deleting the ``django`` directory from your Python ...@@ -140,9 +140,9 @@ uninstalling is as simple as deleting the ``django`` directory from your Python
``site-packages``. To find the directory you need to remove, you can run the ``site-packages``. To find the directory you need to remove, you can run the
following at your shell prompt (not the interactive Python prompt): following at your shell prompt (not the interactive Python prompt):
.. code-block:: bash .. code-block:: console
python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)" $ python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
.. _install-django-code: .. _install-django-code:
...@@ -256,18 +256,18 @@ latest bug fixes and improvements, follow these instructions: ...@@ -256,18 +256,18 @@ latest bug fixes and improvements, follow these instructions:
2. Check out Django's main development branch (the 'trunk' or 'master') like 2. Check out Django's main development branch (the 'trunk' or 'master') like
so: so:
.. code-block:: bash .. code-block:: console
git clone git://github.com/django/django.git django-trunk $ git clone git://github.com/django/django.git django-trunk
This will create a directory ``django-trunk`` in your current directory. This will create a directory ``django-trunk`` in your current directory.
3. Make sure that the Python interpreter can load Django's code. The most 3. Make sure that the Python interpreter can load Django's code. The most
convenient way to do this is via pip_. Run the following command: convenient way to do this is via pip_. Run the following command:
.. code-block:: bash .. code-block:: console
sudo pip install -e django-trunk/ $ sudo pip install -e django-trunk/
(If using a virtualenv_ you can omit ``sudo``.) (If using a virtualenv_ you can omit ``sudo``.)
...@@ -302,9 +302,9 @@ with a checkout of Django's latest code in it. Then add a ``.pth`` file ...@@ -302,9 +302,9 @@ with a checkout of Django's latest code in it. Then add a ``.pth`` file
containing the full path to the ``django-trunk`` directory to your system's containing the full path to the ``django-trunk`` directory to your system's
``site-packages`` directory. For example, on a Unix-like system: ``site-packages`` directory. For example, on a Unix-like system:
.. code-block:: bash .. code-block:: console
echo WORKING-DIR/django-trunk > SITE-PACKAGES-DIR/django.pth $ echo WORKING-DIR/django-trunk > SITE-PACKAGES-DIR/django.pth
In the above line, change ``WORKING-DIR/django-trunk`` to match the full path In the above line, change ``WORKING-DIR/django-trunk`` to match the full path
to your new ``django-trunk`` directory, and change ``SITE-PACKAGES-DIR`` to to your new ``django-trunk`` directory, and change ``SITE-PACKAGES-DIR`` to
...@@ -314,9 +314,9 @@ The location of the ``site-packages`` directory depends on the operating ...@@ -314,9 +314,9 @@ The location of the ``site-packages`` directory depends on the operating
system, and the location in which Python was installed. To find your system's system, and the location in which Python was installed. To find your system's
``site-packages`` location, execute the following: ``site-packages`` location, execute the following:
.. code-block:: bash .. code-block:: console
python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())" $ python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
(Note that this should be run from a shell prompt, not a Python interactive (Note that this should be run from a shell prompt, not a Python interactive
prompt.) prompt.)
...@@ -334,9 +334,9 @@ On Unix-like systems, create a symbolic link to the file ...@@ -334,9 +334,9 @@ On Unix-like systems, create a symbolic link to the file
``django-trunk/django/bin/django-admin`` in a directory on your system ``django-trunk/django/bin/django-admin`` in a directory on your system
path, such as ``/usr/local/bin``. For example: path, such as ``/usr/local/bin``. For example:
.. code-block:: bash .. code-block:: console
ln -s WORKING-DIR/django-trunk/django/bin/django-admin.py /usr/local/bin/ $ ln -s WORKING-DIR/django-trunk/django/bin/django-admin.py /usr/local/bin/
(In the above line, change WORKING-DIR to match the full path to your new (In the above line, change WORKING-DIR to match the full path to your new
``django-trunk`` directory.) ``django-trunk`` directory.)
......
...@@ -760,9 +760,9 @@ to change the default address (in the case, for example, where the 8081 port is ...@@ -760,9 +760,9 @@ to change the default address (in the case, for example, where the 8081 port is
already taken) then you may pass a different one to the :djadmin:`test` command already taken) then you may pass a different one to the :djadmin:`test` command
via the :djadminopt:`--liveserver` option, for example: via the :djadminopt:`--liveserver` option, for example:
.. code-block:: bash .. code-block:: console
./manage.py test --liveserver=localhost:8082 $ ./manage.py test --liveserver=localhost:8082
Another way of changing the default server address is by setting the Another way of changing the default server address is by setting the
`DJANGO_LIVE_TEST_SERVER_ADDRESS` environment variable somewhere in your `DJANGO_LIVE_TEST_SERVER_ADDRESS` environment variable somewhere in your
...@@ -778,9 +778,9 @@ tests might randomly fail with an "Address already in use" error. To avoid this ...@@ -778,9 +778,9 @@ tests might randomly fail with an "Address already in use" error. To avoid this
problem, you can pass a comma-separated list of ports or ranges of ports (at problem, you can pass a comma-separated list of ports or ranges of ports (at
least as many as the number of potential parallel processes). For example: least as many as the number of potential parallel processes). For example:
.. code-block:: bash .. code-block:: console
./manage.py test --liveserver=localhost:8082,8090-8100,9000-9200,7041 $ ./manage.py test --liveserver=localhost:8082,8090-8100,9000-9200,7041
Then, during test execution, each new live test server will try every specified Then, during test execution, each new live test server will try every specified
port until it finds one that is free and takes it. port until it finds one that is free and takes it.
...@@ -791,9 +791,9 @@ To demonstrate how to use ``LiveServerTestCase``, let's write a simple Selenium ...@@ -791,9 +791,9 @@ To demonstrate how to use ``LiveServerTestCase``, let's write a simple Selenium
test. First of all, you need to install the `selenium package`_ into your test. First of all, you need to install the `selenium package`_ into your
Python path: Python path:
.. code-block:: bash .. code-block:: console
pip install selenium $ pip install selenium
Then, add a ``LiveServerTestCase``-based test to your app's tests module Then, add a ``LiveServerTestCase``-based test to your app's tests module
(for example: ``myapp/tests.py``). The code for this test may look as follows:: (for example: ``myapp/tests.py``). The code for this test may look as follows::
...@@ -824,9 +824,9 @@ Then, add a ``LiveServerTestCase``-based test to your app's tests module ...@@ -824,9 +824,9 @@ Then, add a ``LiveServerTestCase``-based test to your app's tests module
Finally, you may run the test as follows: Finally, you may run the test as follows:
.. code-block:: bash .. code-block:: console
./manage.py test myapp.tests.MySeleniumTests.test_login $ ./manage.py test myapp.tests.MySeleniumTests.test_login
This example will automatically open Firefox then go to the login page, enter This example will automatically open Firefox then go to the login page, enter
the credentials and press the "Log in" button. Selenium offers other drivers in the credentials and press the "Log in" button. Selenium offers other drivers in
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment