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 = "8080manage.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에서 실행됩니다.
코딩 즐기기 .....