manage.py runserver
외부에서 지정 가능한 수신 대기 하는 기본 포트를 만들고 싶습니다 config.ini
. sys.argv
내부를 구문 분석 manage.py
하고 구성된 포트를 삽입하는 것보다 쉬운 수정이 있습니까?
목표는 ./manage.py runserver
매번 주소와 포트를 지정할 필요없이 config.ini
.
manage.py runserver
외부에서 지정 가능한 수신 대기 하는 기본 포트를 만들고 싶습니다 config.ini
. sys.argv
내부를 구문 분석 manage.py
하고 구성된 포트를 삽입하는 것보다 쉬운 수정이 있습니까?
목표는 ./manage.py runserver
매번 주소와 포트를 지정할 필요없이 config.ini
.
답변:
다음을 사용하여 bash 스크립트를 만듭니다.
#!/bin/bash
exec ./manage.py runserver 0.0.0.0:<your_port>
manage.py와 동일한 디렉토리에 runserver로 저장하십시오.
chmod +x runserver
다음과 같이 실행하십시오.
./runserver
call
. 이 솔루션이 효과가 있다면 해결됨으로 표시하십시오.
supervisor
이것을 위해 사용 하기 시작했고 , 그것은 관리하기 더 쉽게 만듭니다. :-) 그러나 당신은 아마도 전용 runserver
스크립트를 작성하는 것 외에 가장 깨끗한 솔루션 일 것입니다 .
실제로 개발 Django 서버에서 포트를 변경하는 가장 쉬운 방법은 다음과 같습니다.
python manage.py runserver 7000
http://127.0.0.1:7000/ 에서 개발 서버를 실행해야합니다.
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)
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
manage.py 에 다음 을 추가 할 수 있습니다 . 다음을 사용하여 청취 주소를 변경할 수도 있습니다.runserver.default_addr
다음 명령은 모두 django를 실행하는 동안 포트를 변경할 수 있습니다.
python manage.py runserver 127.0.0.1:7000
python manage.py runserver 7000
python manage.py runserver 0:7000
멤버 의 하위 클래스를 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
여기에 기본 포트 양식 설정 (다른 구성 파일을 읽음)을로드하고 있지만 다른 파일에서 직접 읽을 수도 있습니다.
runserver.py
. 어딘가에 등록해야합니까?
runserver
명령에 대한 Python 모듈을 배치 할 위치에 대한 설명으로 시작합니다 . 또한 어쩌면 당신은 다른 응용 프로그램은이 또한 라는 명령을 등록 runserver
. 명령 이름을 바꾸고 인식되는지 확인하십시오.
<app_name>/management/commands/runserver.py
지만 Django의 원본 runserver
이 사용됩니다. 로 이름을 바꾸면 run_server.py
인식됩니다. runserver
링크 한 페이지에 특별한 내용이 없습니다 .
staticfiles
정확히 당신이 제안한 것을하는 것 입니다. 따라서 지침을 따르면 개발 중에 정적 파일을 제공하지 못합니다. 에서 가져 오는 것이 가장 좋습니다 django.contrib.staticfiles.management.commands
.
우리는 새로운 '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
기본 구성을 변경하려면 다음 단계를 따르십시오.
터미널 유형 열기 명령
$ /usr/local/lib/python<2/3>.x/dist-packages/django/core/management/commands
이제 나노 편집기에서 수퍼 유저로 runserver.py 파일을 엽니 다.
$ sudo nano runserver.py
'default_port'변수를 찾으면 기본 포트 번호가 '8000'인 것을 볼 수 있습니다. 이제 원하는대로 변경할 수 있습니다.
이제 종료하고 "파일을 저장하려면 CTRL + X 및 Y"를 사용하여 파일을 저장하십시오.
참고 : <2/3> .x를 사용 가능한 Python 버전으로 바꿉니다.
이것은 오래된 게시물이지만 관심있는 사람들을 위해 :
기본 포트 번호를 변경하여 "runserver"명령을 실행할 때 원하는 포트로 시작하려면 다음을 수행하십시오.
DEFAULT_PORT = "8080"
python 2.7에서 작동하지만 최신 버전의 python에서도 작동합니다. 행운을 빕니다
나는 같은 문제로 고심하고 있었고 하나의 해결책을 찾았습니다. 나는 그것이 당신을 도울 수 있다고 생각합니다. 를 실행할 때 python manage.py runserver
기본 IP 주소로 127.0.0.1을 사용하고 Python 환경에서 구성 할 수있는 기본 포트 번호로 8000을 사용합니다. 파이썬 설정에서 1로 이동하여 <your python env>\Lib\site-packages\django\core\management\commands\runserver.py
설정하십시오. 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에서 실행됩니다.
코딩 즐기기 .....