Eu gostaria de tornar a porta padrão que manage.py runserver
escuta especificável de forma estranha config.ini
. Existe uma solução mais fácil do que analisar sys.argv
dentro manage.py
e inserir a porta configurada?
O objetivo é executar ./manage.py runserver
sem precisar especificar endereço e porta todas as vezes, mas com os argumentos do config.ini
.
Respostas:
crie um script bash com o seguinte:
salve-o como servidor de execução no mesmo diretório que manage.py
e execute-o como
fonte
call
. Se esta solução funcionar para você, marque-a como resolvida.supervisor
isso agora, o que facilita ainda mais o gerenciamento. :-) Mas a sua provavelmente é a solução mais limpa, além de escrever umrunserver
script dedicado .Na verdade, a maneira mais fácil de mudar (apenas) a porta no servidor Django de desenvolvimento é como:
que deve executar o servidor de desenvolvimento em http://127.0.0.1:7000/
fonte
No Django 1.9, a solução mais simples que encontrei (com base na solução de Quentin Stafford-Fraser) é adicionar algumas linhas nas
manage.py
quais modificar dinamicamente o número da porta padrão antes de chamar orunserver
comando:fonte
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
ao seu manage.py. Você também pode alterar o endereço de escuta com:runserver.default_addr
Todos os seguintes comandos são possíveis de alterar a porta enquanto executa o django:
fonte
Crie uma subclasse
django.core.management.commands.runserver.Command
e substitua odefault_port
membro. Salve o arquivo como um comando de gerenciamento próprio, por exemplo, em<app-name>/management/commands/runserver.py
:Estou carregando as configurações padrão do formulário de porta aqui (que por sua vez lê outros arquivos de configuração), mas você também pode lê-lo diretamente de algum outro arquivo.
fonte
runserver.py
. Devo registrá-lo em algum lugar?runserver
comando. Também talvez você tem um outro aplicativo também registrar um comando chamadorunserver
. Tente renomear seu comando e veja se ele é reconhecido.<app_name>/management/commands/runserver.py
, mas o original do Djangorunserver
é usado. Quando eu o renomeiorun_server.py
, é reconhecido. Não vejo nada de especialrunserver
na página para a qual você vincula.staticfiles
exatamente o que você sugere . Portanto, siga as instruções das interrupções que atendem arquivos estáticos em desenvolvimento. É melhor importar dedjango.contrib.staticfiles.management.commands
.Criamos um novo comando de gerenciamento 'runserver', que é um invólucro fino em torno do padrão, mas altera a porta padrão. Aproximadamente, você cria
management/commands/runserver.py
e coloca algo assim:fonte
No Pycharm, você pode simplesmente adicionar a porta aos parâmetros
fonte
Estou muito atrasado para a festa aqui, mas se você usar um IDE como PyCharm, há uma opção em 'Editar configurações' no menu 'Executar' (Executar> Editar configurações), onde você pode especificar uma porta padrão. Obviamente, isso é relevante apenas se você estiver depurando / testando através do PyCharm.
fonte
Se você deseja alterar as configurações padrão, siga estas etapas:
Comando tipo terminal aberto
Agora abra o arquivo runserver.py no editor nano como superusuário
encontre a variável 'default_port' e você verá que a porta padrão no é '8000'. Agora você pode alterá-lo para o que quiser.
Agora saia e salve o arquivo usando "CTRL + X e Y para salvar o arquivo"
Nota: Substitua <2/3> .x pela sua versão utilizável do python
fonte
Crie uma variável de ambiente no seu .bashrc
exportar RUNSERVER_PORT = 8010
Criar alias
alias runserver = 'servidor de execução django-admin $ RUNSERVER_PORT'
Estou usando o wrapper zsh e virtualenvs. Coloquei exportação nos projetos, script pós-ativo e porta de atribuição para cada projeto.
fonte
Este é um post antigo, mas para aqueles que estão interessados:
Se você deseja alterar o número da porta padrão, portanto, ao executar o comando "runserver", comece com a porta preferida, faça o seguinte:
DEFAULT_PORT = "8080"
Ele funciona com o python 2.7, mas também deve funcionar com versões mais recentes do python. Boa sorte
fonte
Eu estava lutando com o mesmo problema e encontrei uma solução. Eu acho que isso pode ajudá-lo. Quando você executa
python manage.py runserver
, ele usa 127.0.0.1 como endereço IP padrão e 8000 como número de porta padrão que pode ser configurado em seu ambiente python. Na sua configuração python, vá para<your python env>\Lib\site-packages\django\core\management\commands\runserver.py
e defina 1.default_port = '<your_port>'
2. encontre isso em def handle e defina
if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port
Agora, se você executar "python manage.py runserver", ele será executado por padrão em "0.0.0.0:
Desfrute de codificação .....
fonte