mirror of
https://github.com/django/django.git
synced 2024-11-25 07:59:34 +01:00
64153ef4d5
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2349 bcc190cf-cafb-0310-a4f2-bffc1f526a37
285 lines
9.6 KiB
Plaintext
285 lines
9.6 KiB
Plaintext
===========================
|
|
The django-admin.py utility
|
|
===========================
|
|
|
|
``django-admin.py`` is Django's command-line utility for administrative tasks.
|
|
This document outlines all it can do.
|
|
|
|
The ``django-admin.py`` script should be on your system path if you installed
|
|
Django via its ``setup.py`` utility. If it's not on your path, you can find it in
|
|
``site-packages/django/bin`` within your Python installation. Consider
|
|
symlinking to it from some place on your path, such as ``/usr/local/bin``.
|
|
|
|
In addition, ``manage.py`` is automatically created in each Django project.
|
|
``manage.py`` is a thin wrapper around ``django-admin.py`` that takes care of
|
|
two things for you before delegating to ``django-admin.py``:
|
|
|
|
* It puts your project's package on ``sys.path``.
|
|
|
|
* It sets the ``DJANGO_SETTINGS_MODULE`` environment variable so that it
|
|
points to your project's ``settings.py`` file.
|
|
|
|
Generally, when working on a single Django project, it's easier to use
|
|
``manage.py``. Use ``django-admin.py`` with ``DJANGO_SETTINGS_MODULE``, or the
|
|
``--settings`` command line option, if you need to switch between multiple
|
|
Django settings files.
|
|
|
|
Usage
|
|
=====
|
|
|
|
``django-admin.py action [options]``
|
|
|
|
``manage.py action [options]``
|
|
|
|
``action`` should be one of the actions listed in this document. ``options``,
|
|
which is optional, should be zero or more of the options listed in this
|
|
document.
|
|
|
|
Run ``django-admin.py --help`` to display a help message that includes a terse
|
|
list of all available actions and options.
|
|
|
|
Most actions take a list of "modelmodule"s. A "modelmodule," in this case, is
|
|
the name of a file containing Django models. For example, if you have a model
|
|
module called ``myproject/apps/polls/pollmodels.py``, the "modelmodule" in this
|
|
case would be ``"pollmodels"``.
|
|
|
|
Available actions
|
|
=================
|
|
|
|
adminindex [modelmodule modelmodule ...]
|
|
----------------------------------------
|
|
|
|
Prints the admin-index template snippet for the given model module(s).
|
|
|
|
Use admin-index template snippets if you want to customize the look and feel of
|
|
your admin's index page. See `Tutorial 2`_ for more information.
|
|
|
|
.. _Tutorial 2: http://www.djangoproject.com/documentation/tutorial2/
|
|
|
|
createcachetable [tablename]
|
|
----------------------------
|
|
|
|
Creates a cache table named ``tablename`` for use with the database cache
|
|
backend. See the `cache documentation`_ for more information.
|
|
|
|
.. _cache documentation: http://www.djangoproject.com/documentation/cache/
|
|
|
|
createsuperuser
|
|
---------------
|
|
|
|
Creates a superuser account interactively. It asks you for a username, e-mail
|
|
address and password.
|
|
|
|
You can specify ``username email password`` on the command line, for convenient
|
|
use in shell scripts. Example::
|
|
|
|
django-admin.py createsuperuser john john@example.com mypassword
|
|
|
|
init
|
|
----
|
|
|
|
Initializes the database with the tables and data Django needs by default.
|
|
Specifically, these are the database tables from the ``auth`` and ``core``
|
|
models.
|
|
|
|
inspectdb [dbname]
|
|
------------------
|
|
|
|
Introspects the database tables in the given database and outputs a Django
|
|
model module to standard output.
|
|
|
|
Use this if you have a legacy database with which you'd like to use Django.
|
|
The script will inspect the database and create a model for each table within
|
|
it.
|
|
|
|
As you might expect, the created models will have an attribute for every field
|
|
in the table. Note that ``inspectdb`` has a few special cases in its field-name
|
|
output:
|
|
|
|
* If ``inspectdb`` cannot map a column's type to a model field type, it'll
|
|
use ``TextField`` and will insert the Python comment
|
|
``'This field type is a guess.'`` next to the field in the generated
|
|
model.
|
|
|
|
* **New in Django development version.** If the database column name is a
|
|
Python reserved word (such as ``'pass'``, ``'class'`` or ``'for'``),
|
|
``inspectdb`` will append ``'_field'`` to the attribute name. For
|
|
example, if a table has a column ``'for'``, the generated model will have
|
|
a field ``'for_field'``, with the ``db_column`` attribute set to
|
|
``'for'``. ``inspectdb`` will insert the Python comment
|
|
``'Field renamed because it was a Python reserved word.'`` next to the
|
|
field.
|
|
|
|
This feature is meant as a shortcut, not as definitive model generation. After
|
|
you run it, you'll want to look over the generated models yourself to make
|
|
customizations. In particular, you'll need to rearrange models' order, so that
|
|
models that refer to other models are ordered properly.
|
|
|
|
If you're using Django 0.90 or 0.91, you'll need to add ``primary_key=True`` to
|
|
one field in each model. In the Django development version, primary keys are
|
|
automatically introspected for PostgreSQL and MySQL, and Django puts in the
|
|
``primary_key=True`` where needed.
|
|
|
|
``inspectdb`` works with PostgreSQL, MySQL and SQLite. Foreign-key detection
|
|
only works in PostgreSQL.
|
|
|
|
install [modelmodule modelmodule ...]
|
|
-------------------------------------
|
|
|
|
Executes the equivalent of ``sqlall`` for the given model module(s).
|
|
|
|
installperms [modelmodule modelmodule ...]
|
|
------------------------------------------
|
|
|
|
Installs any admin permissions for the given model module(s) that aren't
|
|
already installed in the database. Outputs a message telling how many
|
|
permissions were added, if any.
|
|
|
|
runserver [optional port number, or ipaddr:port]
|
|
------------------------------------------------
|
|
|
|
Starts a lightweight development Web server on the local machine. By default,
|
|
the server runs on port 8000 on the IP address 127.0.0.1. You can pass in an
|
|
IP address and port number explicitly.
|
|
|
|
If you run this script as a user with normal privileges (recommended), you
|
|
might not have access to start a port on a low port number. Low port numbers
|
|
are reserved for superusers (root).
|
|
|
|
DO NOT USE THIS SERVER IN A PRODUCTION SETTING.
|
|
|
|
The development server automatically reloads Python code for each request, as
|
|
needed. You don't need to restart the server for code changes to take effect.
|
|
|
|
When you start the server, and each time you change Python code while the
|
|
server is running, the server will validate all of your installed models. (See
|
|
the "validate" option below.) If the validator finds errors, it will print
|
|
them to standard output, but it won't stop the server.
|
|
|
|
You can run as many servers as you want, as long as they're on separate ports.
|
|
Just execute ``django-admin.py runserver`` more than once.
|
|
|
|
Note that the default IP address, 127.0.0.1, is not accessible from other
|
|
machines on your network. To make your development server viewable to other
|
|
machines on the network, use its own IP address (e.g. ``192.168.2.1``) or
|
|
``0.0.0.0``.
|
|
|
|
Examples:
|
|
~~~~~~~~~
|
|
|
|
Port 7000 on IP address 127.0.0.1::
|
|
|
|
django-admin.py runserver 7000
|
|
|
|
Port 7000 on IP address 1.2.3.4::
|
|
|
|
django-admin.py runserver 1.2.3.4:7000
|
|
|
|
shell
|
|
-----
|
|
|
|
Starts the Python interactive interpreter.
|
|
|
|
**New in Django development version:** Uses IPython_, if it's installed. If you
|
|
have IPython installed and want to force use of the "plain" Python interpreter,
|
|
use the ``--plain`` option, like so::
|
|
|
|
django-admin.py shell --plain
|
|
|
|
.. _IPython: http://ipython.scipy.org/
|
|
|
|
sql [modelmodule modelmodule ...]
|
|
---------------------------------
|
|
|
|
Prints the CREATE TABLE SQL statements for the given model module(s).
|
|
|
|
sqlall [modelmodule modelmodule ...]
|
|
------------------------------------
|
|
|
|
Prints the CREATE TABLE and initial-data SQL statements for the given model module(s).
|
|
|
|
sqlclear [modelmodule modelmodule ...]
|
|
--------------------------------------
|
|
|
|
Prints the DROP TABLE SQL statements for the given model module(s).
|
|
|
|
sqlindexes [modelmodule modelmodule ...]
|
|
----------------------------------------
|
|
|
|
Prints the CREATE INDEX SQL statements for the given model module(s).
|
|
|
|
sqlinitialdata [modelmodule modelmodule ...]
|
|
--------------------------------------------
|
|
|
|
Prints the initial INSERT SQL statements for the given model module(s).
|
|
|
|
sqlreset [modelmodule modelmodule ...]
|
|
--------------------------------------
|
|
|
|
Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given model module(s).
|
|
|
|
sqlsequencereset [modelmodule modelmodule ...]
|
|
----------------------------------------------
|
|
|
|
Prints the SQL statements for resetting PostgreSQL sequences for the given
|
|
model module(s).
|
|
|
|
See http://simon.incutio.com/archive/2004/04/21/postgres for more information.
|
|
|
|
startapp [appname]
|
|
------------------
|
|
|
|
Creates a Django app directory structure for the given app name in the current
|
|
directory.
|
|
|
|
startproject [projectname]
|
|
--------------------------
|
|
|
|
Creates a Django project directory structure for the given project name in the
|
|
current directory.
|
|
|
|
validate
|
|
--------
|
|
|
|
Validates all installed models (according to the ``INSTALLED_APPS`` setting)
|
|
and prints validation errors to standard output.
|
|
|
|
Available options
|
|
=================
|
|
|
|
--settings
|
|
----------
|
|
|
|
Example usage::
|
|
|
|
django-admin.py init --settings=myproject.settings
|
|
|
|
Explicitly specifies the settings module to use. The settings module should be
|
|
in Python path syntax, e.g. "myproject.settings". If this isn't provided,
|
|
``django-admin.py`` will use the DJANGO_SETTINGS_MODULE environment variable.
|
|
|
|
Note that this option is unnecessary in ``manage.py``, because it takes care of
|
|
setting ``DJANGO_SETTINGS_MODULE`` for you.
|
|
|
|
--pythonpath
|
|
------------
|
|
|
|
Example usage::
|
|
|
|
django-admin.py init --pythonpath='/home/djangoprojects/myproject'
|
|
|
|
Adds the given filesystem path to the Python `import search path`_. If this
|
|
isn't provided, ``django-admin.py`` will use the ``PYTHONPATH`` environment
|
|
variable.
|
|
|
|
Note that this option is unnecessary in ``manage.py``, because it takes care of
|
|
setting the Python path for you.
|
|
|
|
.. _import search path: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html
|
|
|
|
--help
|
|
------
|
|
|
|
Displays a help message that includes a terse list of all available actions and
|
|
options.
|