web-dev-qa-db-ja.com

djangoデフォルトのrunserverポートを変更

manage.py runserverがリッスンするデフォルトのポートを、無関係なconfig.iniで指定可能にしたいと思います。 sys.argv内でmanage.pyを解析し、設定されたポートを挿入するよりも簡単な修正方法はありますか?

目標は、毎回アドレスとポートを指定せずに./manage.py runserverから引数を取るようにconfig.iniを実行することです。

85
jonny

以下を使用してbashスクリプトを作成します。

#!/bin/bash
exec ./manage.py runserver 0.0.0.0:<your_port>

manage.pyと同じディレクトリにrunserverとして保存します

chmod +x runserver

そしてそれを実行します

./runserver
125
Pablo Albornoz

実際、開発Djangoサーバーのポートを(唯一の)変更する最も簡単な方法は次のようなものです:

python manage.py runserver 7000

http://127.0.0.1:7000/ で開発サーバーを実行する必要があります

66
Qback

Django 1.9の時点で、私が見つけた最も簡単なソリューション(Quentin Stafford-Fraserのソリューションに基づく)は、runserverコマンドを呼び出す前にデフォルトのポート番号を動的に変更するmanage.pyに数行を追加することです:

if __== "__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)
34
BillyBBone

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

ここではデフォルトのポートフォーム設定を読み込んでいます(他の設定ファイルを読み込む)が、他のファイルから直接読み込むこともできます。

8
Feuermurmel

新しい「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

Pycharmでは、単にポートをパラメーターに追加できます

enter image description here

1
chaggy

私はここでパーティーに非常に遅れていますが、PyCharmのようなIDEを使用する場合、「実行」メニュー(「実行」>「構成の編集」)の下の「構成の編集」にオプションを指定できますデフォルトのポート。もちろん、これはPyCharmを介してデバッグ/テストしている場合にのみ関係します。

1
Smitty
  1. .bashrcに環境変数を作成します

    rUNSERVER_PORT = 8010をエクスポート

  2. エイリアスを作成

    エイリアスrunserver = 'Django-admin runserver $ RUNSERVER_PORT'

私はzshとvirtualenvsラッパーを使用しています。プロジェクトにエクスポートを配置し、すべてのプロジェクトのスクリプトをアクティブ化し、ポートを割り当てます。

workon someproject
runserver
0
Pavel1114

デフォルトの構成を変更する場合は、次の手順を実行します。

  1. 端末タイプを開くコマンド

     $ /usr/local/lib/python<2/3>.x/dist-packages/Django/core/management/commands
    
  2. ここで、nanoエディターでスーパーユーザーとしてrunserver.pyファイルを開きます

     $ Sudo nano runserver.py
    
  3. 「default_port」変数を見つけると、デフォルトのポート番号が「8000」であることがわかります。これで、必要なものに変更できます。

  4. 次に、「CTRL + XおよびYを使用してファイルを保存」を使用してファイルを終了し、保存します

注:<2/3> .xを使用可能なバージョンのPythonに置き換えます

0
rhoitjadhav

これは古い投稿ですが、興味のある人向けです:

デフォルトのポート番号を変更する場合は、「ru​​nserver」コマンドを実行するときに優先ポートから開始します。

  1. pythonインストールを見つけます。 (複数のpythonをインストールすることができ、仮想環境のバージョンも持つことができるので、正しいものを見つけてください)
  2. pythonフォルダー内で、site-packagesフォルダーを見つけます。その中にDjangoインストールがあります
  3. Djangoフォルダー->コア->管理->コマンドを開きます
  4. コマンドフォルダー内で、テキストエディターでrunserver.pyスクリプトを開きます。
  5. DEFAULT_PORTフィールドを見つけます。デフォルトでは8000です。 DEFAULT_PORT = "8080"を好きなものに変更してください
  6. サーバーを再起動します:python manage.py runserverおよび設定されたポート番号を使用することを確認します

python 2.7で動作しますが、pythonの新しいバージョンでも動作するはずです。がんばろう

0
Daniel Kiss