Подтвердить что ты не робот

Django изменить порт запускает по умолчанию

Я хотел бы сделать порт по умолчанию, который manage.py runserver прослушивает по определенному в постороннем config.ini. Есть ли более легкое исправление, чем синтаксический анализ sys.argv внутри manage.py и вставка настроенного порта?

Цель состоит в том, чтобы запустить ./manage.py runserver без необходимости указывать адрес и порт каждый раз, но при этом он принимает аргументы из config.ini.

4b9b3361

Ответ 1

создайте bash script со следующим:

#!/bin/bash
exec ./manage.py runserver 0.0.0.0:<your_port>

сохраните его как runerver в том же каталоге, что и manage.py

chmod +x runserver

и запустите его как

./runserver

Ответ 2

Как и в Django 1.9, простейшее решение, которое я нашел (на основе решения Quentin Stafford-Fraser), заключается в добавлении нескольких строк в manage.py, которые динамически изменяют номер порта по умолчанию перед вызовом команды runserver:

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)

Ответ 3

На самом деле самый простой способ изменения (только) порта в разработке Django-сервера:

python manage.py runserver 7000

который должен запустить сервер разработки на http://127.0.0.1:7000/

Ответ 4

Мы создали новую команду управления "runerver", которая представляет собой тонкую оболочку вокруг стандартного, но изменяет порт по умолчанию. Грубо, вы создаете 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

Ответ 5

Это старый пост, но для тех, кто заинтересован:

Если вы хотите изменить номер порта по умолчанию, поэтому при запуске команды "runningerver" вы начинаете с предпочтительного порта:

  • Найдите свою установку python. (у вас может быть установлено несколько питонов, и у вас также может быть версия вашей виртуальной среды, поэтому убедитесь, что вы нашли правильный вариант)
  • Внутри папки python найдите папку site-packages. Внутри вы найдете свою установку django.
  • Откройте папку django- > core → management → commands
  • Внутри папки команд откройте файл runningerver.py script с текстовым редактором
  • Найдите поле DEFAULT_PORT. он по умолчанию равен 8000. Измените его на все, что вам нравится DEFAULT_PORT = "8080"
  • Перезагрузите сервер: python manage.py runningerver и убедитесь, что он использует номер вашего установленного порта.

Он работает с python 2.7, но он также должен работать с более новыми версиями python. Удачи.

Ответ 6

Я очень опаздываю на вечеринку здесь, но если вы используете IDE, например PyCharm, там есть опция "Редактировать конфигурации" в меню "Выполнить" ( "Выполнить" > "Редактировать конфигурации" ), где вы можете указать порт по умолчанию. Это, конечно, актуально, только если вы отлаживаете/тестируете через PyCharm.

Ответ 7

Создайте подкласс 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

Я загружаю настройки формы порта по умолчанию (которые, в свою очередь, читают другие файлы конфигурации), но вы можете просто прочитать его из другого файла напрямую.

Ответ 8

  • Создайте переменную окружения в вашем .bashrc

    export RUNSERVER_PORT = 8010

  • Создать псевдоним

    alias runningerver = 'django-admin runningerver $RUNSERVER_PORT'

Im использует zsh и virtualenvs wrapper. Я добавляю экспорт в проекты postactivate script и порт asign для каждого проекта.

workon someproject
runserver

Ответ 9

Я боролся с той же проблемой и нашел одно решение. Думаю, это может вам помочь. при запуске python manage.py runserver в качестве IP-адреса по умолчанию будет 127.0.0.1 и 8000 в качестве номера порта по умолчанию, который можно настроить в вашей среде python. В настройке python перейдите к <your python env>\Lib\site-packages\django\core\management\commands\runserver.py и установите 1. default_port = '<your_port>'
2. Найдите это под дескриптором def и установите if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port

Теперь, если вы запустите "python manage.py runningerver", он будет запущен по умолчанию на "0.0.0.0:

Наслаждайтесь кодированием.....