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
実際、開発Djangoサーバーのポートを(唯一の)変更する最も簡単な方法は次のようなものです:
python manage.py runserver 7000
http://127.0.0.1:7000/ で開発サーバーを実行する必要があります
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)
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」管理コマンドを作成しました。これは、標準の薄いラッパーですが、デフォルトのポートを変更します。大体、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のようなIDEを使用する場合、「実行」メニュー(「実行」>「構成の編集」)の下の「構成の編集」にオプションを指定できますデフォルトのポート。もちろん、これはPyCharmを介してデバッグ/テストしている場合にのみ関係します。
.bashrcに環境変数を作成します
rUNSERVER_PORT = 8010をエクスポート
エイリアスを作成
エイリアスrunserver = 'Django-admin runserver $ RUNSERVER_PORT'
私はzshとvirtualenvsラッパーを使用しています。プロジェクトにエクスポートを配置し、すべてのプロジェクトのスクリプトをアクティブ化し、ポートを割り当てます。
workon someproject
runserver
デフォルトの構成を変更する場合は、次の手順を実行します。
端末タイプを開くコマンド
$ /usr/local/lib/python<2/3>.x/dist-packages/Django/core/management/commands
ここで、nanoエディターでスーパーユーザーとしてrunserver.pyファイルを開きます
$ Sudo nano runserver.py
「default_port」変数を見つけると、デフォルトのポート番号が「8000」であることがわかります。これで、必要なものに変更できます。
次に、「CTRL + XおよびYを使用してファイルを保存」を使用してファイルを終了し、保存します
注:<2/3> .xを使用可能なバージョンのPythonに置き換えます
これは古い投稿ですが、興味のある人向けです:
デフォルトのポート番号を変更する場合は、「runserver」コマンドを実行するときに優先ポートから開始します。
DEFAULT_PORT = "8080"
を好きなものに変更してくださいpython 2.7で動作しますが、pythonの新しいバージョンでも動作するはずです。がんばろう