django изменить порт runserver по умолчанию
Я хотел бы сделать порт по умолчанию, что manage.py runserver слушает на specifiable в постороннем config.ini. Есть ли более простое исправление, чем разбор sys.argv внутри manage.py и вставить настроенный порт?
цель состоит в том, чтобы запустить ./manage.py runserver без необходимости указывать адрес и порт каждый раз, но имея его принять аргументы от config.ini.
12 ответов:
создать bash-скрипт следующим образом:
#!/bin/bash exec ./manage.py runserver 0.0.0.0:<your_port>сохраните его как runserver в том же каталоге, что и manage.py
chmod +x runserverи запустить его как
./runserver
на самом деле самый простой способ изменить (только) порт в разработке Django server так же, как:
python manage.py runserver 7000это должно запустить сервер разработки на http://127.0.0.1:7000/
начиная с Django 1.9, самое простое решение, которое я нашел (на основе решения Квентина Стаффорда-Фрейзера), - это добавить несколько строк в
manage.pyдинамически изменять номер порта по умолчанию перед запуском :if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings.dev") import django django.setup() # Override default port for `runserver` command from django.core.management.commands.runserver import Command as runserver runserver.default_port = "8080" from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)
мы создали новую команду управления "runserver", которая представляет собой тонкую оболочку вокруг стандартной, но изменяет порт по умолчанию. Грубо говоря, вы создаете
management/commands/runserver.pyи вставил что-то вроде этого:# Override the value of the constant coded into django... import django.core.management.commands.runserver as runserver runserver.DEFAULT_PORT="8001" # ...print out a warning... # (This gets output twice because runserver fires up two threads (one for autoreload). # We're living with it for now :-) import os dir_path = os.path.splitext(os.path.relpath(__file__))[0] python_path = dir_path.replace(os.sep, ".") print "Using %s with default port %s" % (python_path, runserver.DEFAULT_PORT) # ...and then just import its standard Command class. # Then manage.py runserver behaves normally in all other regards. from django.core.management.commands.runserver import Command
создать подкласс
django.core.management.commands.runserver.Commandи заменитьdefault_portчлен. Сохраните файл как собственную команду управления, например, под<app-name>/management/commands/runserver.py:from django.conf import settings from django.core.management.commands import runserver class Command(runserver.Command): default_port = settings.RUNSERVER_PORTя загружаю настройки формы порта по умолчанию здесь (который, в свою очередь, читает другие файлы конфигурации), но вы можете также прочитать его из другого файла напрямую.
все следующие команды можно изменить порт во время работы django:
python manage.py runserver 127.0.0.1:7000 python manage.py runserver 7000 python manage.py runserver 0:7000
Это старый пост, но для тех, кому интересно:
Если вы хотите изменить номер порта по умолчанию, поэтому при запуске команды "runserver" вы начинаете с вашего предпочтительного порта, сделайте это:
- найдите свою установку python. (у вас может быть установлено несколько питонов, и вы также можете иметь свою версию виртуальной среды, поэтому убедитесь, что вы нашли правильный)
- внутри папки python найдите папку site-packages. Внутри вы найдите свою установку django
- откройте папку django - > ядро - > управление - > команды
- внутри папки команд откройте runserver.py скрипт с текстовым редактором
- найдите поле DEFAULT_PORT. по умолчанию он равен 8000. Изменить его на что угодно
DEFAULT_PORT = "8080"- перезагрузите сервер: python manage.py запустите сервер и убедитесь, что он использует ваш номер порта
Он работает с Python 2.7, но он должен работать с более новые версии Python, а также. Удачи
Я очень опаздываю на вечеринку здесь, но если вы используете IDE, такую как PyCharm, есть опция "редактировать конфигурации" в меню "Выполнить" (Run > Edit Configuration), где вы можете указать порт по умолчанию. Это, конечно, актуально только в том случае, если вы отлаживаете/тестируете через PyCharm.
создать переменную окружения в вашем .bashrc
экспорт RUNSERVER_PORT=8010
создать псевдоним
alias runserver= 'django-admin runserver $RUNSERVER_PORT'
Im с помощью zsh и virtualenvs оболочки. Я поставил экспорт в проекты postactivate script и ASign port для каждого проекта.
workon someproject runserver
Если вы хотите изменить настройки по умолчанию, то выполните следующие действия:
открыть терминал, введите команду
$ /usr/local/lib/python<2/3>.x/dist-packages/django/core/management/commandsтеперь открыть runserver.py файл в Редакторе nano в качестве суперпользователя
$ sudo nano runserver.pyнайти переменную' default_port', то вы увидите порт по умолчанию нет '8000'. Теперь вы можете изменить его на что угодно.
теперь выйдите и сохраните файл с помощью " CTRL + X и Y to сохраните файл"
Примечание: Замените .x с вашей полезной версией python
я боролся с той же проблемой и нашел одно решение. Я думаю, это может помочь вам. когда вы бежите
python manage.py runserver, Он будет принимать 127.0.0.1 в качестве ip-адреса по умолчанию и 8000 в качестве номера порта по умолчанию, который может быть настроен в вашей среде python. В настройках python перейдите к<your python env>\Lib\site-packages\django\core\management\commands\runserver.pyи установить 1.default_port = '<your_port>'
2. найти в деф ручка и наборif not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_portтеперь, если вы запустите "python manage.py runserver" он будет работать по умолчанию на " 0.0.0.0:
наслаждайтесь кодирования .....

Comments