Я хотел бы сделать порт по умолчанию, который manage.py runserver
слушает, определяемым посторонним config.ini
. Есть ли что-то более простое решение, чем разбор sys.argv
внутри manage.py
и вставка настроенного порта?
Цель состоит в том, чтобы запускаться ./manage.py runserver
без необходимости каждый раз указывать адрес и порт, но заставляя его принимать аргументы из config.ini
.
Ответы:
создайте сценарий bash со следующим:
сохраните его как runserver в том же каталоге, что и manage.py
и запустите его как
источник
call
. Если это решение работает для вас, обязательно отметьте его как решенное.supervisor
для этого сейчас, что упрощает управление. :-) Но ваше, вероятно, самое чистое решение, кроме написания специальногоrunserver
скрипта.На самом деле самый простой способ изменить (только) порт в разработке сервера Django выглядит так:
который должен запускать сервер разработки на http://127.0.0.1:7000/
источник
Начиная с Django 1.9, самое простое решение, которое я нашел (на основе решения Квентина Стаффорда-Фрейзера), - это добавить несколько строк, в
manage.py
которые динамически изменяют номер порта по умолчанию перед вызовомrunserver
команды:источник
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
версии 2.0.3) вы можете просто добавить: в свой manage.py. Вы также можете изменить адрес прослушивания с помощью:runserver.default_addr
Все следующие команды позволяют изменить порт во время работы django:
источник
Создайте подкласс
django.core.management.commands.runserver.Command
и перезапишитеdefault_port
член. Сохраните файл как собственную команду управления, например в<app-name>/management/commands/runserver.py
:Я загружаю здесь настройки формы порта по умолчанию (которые, в свою очередь, читают другие файлы конфигурации), но вы также можете напрямую прочитать их из другого файла.
источник
runserver.py
. Где-то прописать?runserver
команды. Также, возможно, у вас есть другое приложение, также регистрирующее команду с именемrunserver
. Попробуйте переименовать свою команду и посмотрите, распознается ли она.<app_name>/management/commands/runserver.py
, но потом используется оригинал Djangorunserver
. Когда я переименовываю его вrun_server.py
, он распознается. Я не вижу ничего особенногоrunserver
на странице, на которую вы ссылаетесь.staticfiles
делает именно то, что вы предлагаете . Таким образом, следование вашим инструкциям нарушает работу статических файлов в разработке. Лучше всего импортировать изdjango.contrib.staticfiles.management.commands
.Мы создали новую команду управления runserver, которая представляет собой тонкую оболочку стандартной, но меняет порт по умолчанию. Грубо говоря, вы создаете
management/commands/runserver.py
и вставляете что-то вроде этого:источник
В Pycharm вы можете просто добавить порт в параметры
источник
Я очень опаздываю на вечеринку, но если вы используете IDE, такую как PyCharm, в меню «Выполнить» («Выполнить»> «Изменить конфигурации») есть опция «Изменить конфигурации», где вы можете указать порт по умолчанию. Это, конечно, актуально, только если вы отлаживаете / тестируете через PyCharm.
источник
Если вы хотите изменить конфигурации по умолчанию, выполните следующие действия:
Открыть команду типа терминала
Теперь откройте файл runserver.py в редакторе nano как суперпользователь.
найдите переменную default_port, тогда вы увидите, что номер порта по умолчанию - 8000. Теперь вы можете изменить его на все, что захотите.
Теперь выйдите и сохраните файл, используя «CTRL + X и Y, чтобы сохранить файл».
Примечание. Замените <2/3> .x используемой версией python.
источник
Создайте переменную окружения в вашем .bashrc
экспорт RUNSERVER_PORT = 8010
Создать псевдоним
псевдоним runserver = 'django-admin runserver $ RUNSERVER_PORT'
Я использую оболочку zsh и virtualenvs. Я помещаю экспорт в проекты postactivate script и назначаю порт для каждого проекта.
источник
Это старый пост, но для тех, кому интересно:
Если вы хотите изменить номер порта по умолчанию, чтобы при запуске команды "runserver" вы начинали с предпочитаемого порта, сделайте следующее:
DEFAULT_PORT = "8080"
Он работает с python 2.7, но должен работать и с более новыми версиями 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. найдите это под дескриптором def и установите
if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port
Теперь, если вы запустите «python manage.py runserver», он по умолчанию будет работать на «0.0.0.0:
Наслаждайтесь кодированием .....
источник