mirror of
https://github.com/django/django.git
synced 2024-12-23 01:25:58 +00:00
Added conf/project_template/manage.py, which is a light wrapper around django-admin.py that gets installed in each project with 'startproject'. It takes care of the PYTHONPATH and DJANGO_SETTINGS_MODULE business automatically.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@1556 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
17108bc190
commit
28263d6675
10
django/conf/project_template/manage.py
Normal file
10
django/conf/project_template/manage.py
Normal file
@ -0,0 +1,10 @@
|
||||
from django.core.management import execute_manager
|
||||
try:
|
||||
import settings # Assumed to be in the same directory.
|
||||
except ImportError:
|
||||
import sys
|
||||
sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__)
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
execute_manager(settings)
|
@ -960,3 +960,24 @@ def execute_from_command_line(action_mapping=DEFAULT_ACTION_MAPPING):
|
||||
print '\n'.join(output)
|
||||
if action not in NO_SQL_TRANSACTION:
|
||||
print "COMMIT;"
|
||||
|
||||
def execute_manager(settings_mod):
|
||||
# Add this project to sys.path so that it's importable in the conventional
|
||||
# way. For example, if this file (manage.py) lives in a directory
|
||||
# "myproject", this code would add "/path/to/myproject" to sys.path.
|
||||
project_directory = os.path.dirname(settings_mod.__file__)
|
||||
project_name = os.path.basename(project_directory)
|
||||
sys.path.append(os.path.join(project_directory, '..'))
|
||||
project_module = __import__(project_name, '', '', [''])
|
||||
sys.path.pop()
|
||||
|
||||
# Set DJANGO_SETTINGS_MODULE appropriately.
|
||||
os.environ['DJANGO_SETTINGS_MODULE'] = '%s.settings' % project_name
|
||||
|
||||
# Remove the "startproject" command from the action_mapping, because that's
|
||||
# a django-admin.py command, not a manage.py command.
|
||||
action_mapping = DEFAULT_ACTION_MAPPING.copy()
|
||||
del action_mapping['startproject']
|
||||
|
||||
# Run the django-admin.py command.
|
||||
execute_from_command_line(action_mapping)
|
||||
|
Loading…
Reference in New Issue
Block a user