Me gustaría que el puerto predeterminado que manage.py runserver
escucha en especificable en un extraño config.ini
. ¿Hay una solución más fácil que analizar sys.argv
dentromanage.py
e insertar el puerto configurado?
El objetivo es ejecutar ./manage.py runserver
sin tener que especificar la dirección y el puerto cada vez, sino que tome los argumentos del config.ini
.
Respuestas:
cree un script bash con lo siguiente:
guárdelo como servidor de ejecución en el mismo directorio que manage.py
y ejecutarlo como
fuente
call
. Si esta solución funciona para usted, asegúrese de marcarla como resuelta.supervisor
esto ahora, lo que hace que sea aún más fácil de administrar. :-) Pero la tuya es probablemente la solución más limpia además de escribir unrunserver
script dedicado .En realidad, la forma más fácil de cambiar (solo) el puerto en el servidor Django de desarrollo es como:
que debería ejecutar el servidor de desarrollo en http://127.0.0.1:7000/
fuente
A partir de Django 1.9, la solución más simple que he encontrado (basada en la solución de Quentin Stafford-Fraser) es agregar algunas líneas para
manage.py
modificar dinámicamente el número de puerto predeterminado antes de invocar elrunserver
comando:fuente
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
a su manage.py. También puede cambiar la dirección de escucha con:runserver.default_addr
Todos los siguientes comandos son posibles para cambiar el puerto mientras se ejecuta django:
fuente
Cree una subclase de
django.core.management.commands.runserver.Command
y sobrescriba eldefault_port
miembro. Guarde el archivo como un comando de administración propio, por ejemplo, en<app-name>/management/commands/runserver.py
:Estoy cargando la configuración predeterminada del formulario de puerto aquí (que a su vez lee otros archivos de configuración), pero también podría leerlo directamente desde otro archivo.
fuente
runserver.py
. ¿Debo registrarlo en alguna parte?runserver
comando. Además, quizás tenga otra aplicación que también registre un comando llamadorunserver
. Intente cambiar el nombre de su comando y ver si se reconoce.<app_name>/management/commands/runserver.py
, pero luegorunserver
se usa el original de Django . Cuando le cambio el nombrerun_server.py
, se reconoce. No veo nada especialrunserver
en la página a la que enlazas.staticfiles
exactamente lo que sugieres . Por lo tanto, seguir sus instrucciones deja de servir archivos estáticos en desarrollo. Es mejor importar desdedjango.contrib.staticfiles.management.commands
.Creamos un nuevo comando de administración 'runserver' que es una envoltura delgada alrededor del estándar pero cambia el puerto predeterminado. Aproximadamente, creas
management/commands/runserver.py
y pones algo como esto:fuente
En Pycharm puedes simplemente agregar el puerto a los parámetros
fuente
Llego muy tarde a la fiesta aquí, pero si usa un IDE como PyCharm, hay una opción en 'Editar configuraciones' en el menú 'Ejecutar' (Ejecutar> Editar configuraciones) donde puede especificar un puerto predeterminado. Por supuesto, esto solo es relevante si está depurando / probando a través de PyCharm.
fuente
Si desea cambiar las configuraciones predeterminadas, siga estos pasos:
Comando tipo terminal abierto
Ahora abra el archivo runserver.py en nano editor como superusuario
busque la variable 'default_port' y verá que el número de puerto predeterminado es '8000'. Ahora puedes cambiarlo a lo que quieras.
Ahora salga y guarde el archivo usando "CTRL + X e Y para guardar el archivo"
Nota: Reemplace <2/3> .x con su versión utilizable de python
fuente
Cree una variable de entorno en su .bashrc
exportar RUNSERVER_PORT = 8010
Crear alias
alias runserver = 'django-admin runserver $ RUNSERVER_PORT'
Estoy usando zsh y virtualenvs wrapper. Pongo exportar en proyectos postactivate script y asign port para cada proyecto.
fuente
Esta es una publicación antigua pero para aquellos que estén interesados:
Si desea cambiar el número de puerto predeterminado, cuando ejecute el comando "runserver", comience con su puerto preferido, haga lo siguiente:
DEFAULT_PORT = "8080"
Funciona con python 2.7, pero también debería funcionar con versiones más recientes de python. Buena suerte
fuente
Estaba luchando con el mismo problema y encontré una solución. Supongo que puede ayudarte. cuando ejecute
python manage.py runserver
, tomará 127.0.0.1 como dirección IP predeterminada y 8000 como número de puerto predeterminado que se puede configurar en su entorno python. En su configuración de Python, vaya<your python env>\Lib\site-packages\django\core\management\commands\runserver.py
y establezca 1.default_port = '<your_port>'
2. encuentre esto en el controlador def y configure
if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port
Ahora, si ejecuta "python manage.py runserver", se ejecutará de forma predeterminada en "0.0.0.0:
Disfruta codificando .....
fuente