我想在一个多余的config.ini中指定manage.py runserver侦听的默认端口。有没有比解析sys. exe更简单的解决方案?在manage.py和插入配置端口Argv ?

目标是运行./manage.py runserver,而不必每次都指定地址和端口,而是让它从config.ini中获取参数。


当前回答

您可以尝试像这样在manage.py中添加一个参数

python manage.py runserver 0.0.0.0:5000 

python manage.py runserver <您的IP>:<端口>

或者像这样通过港口

python manage.py runserver 5000

Python manage.py runserver <您的端口>

其他回答

在.bashrc中创建环境变量 出口RUNSERVER_PORT = 8010 创建别名 alias runserver='django-admin runserver $RUNSERVER_PORT'

我使用zsh和virtualenvs包装。我把出口项目后激活脚本和分配端口为每个项目。

workon someproject
runserver

创建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

我在这里加载默认的端口表单设置(它反过来读取其他配置文件),但您也可以直接从其他文件读取它。

I was struggling with the same problem and found one solution. I guess it can help you. when you run python manage.py runserver, it will take 127.0.0.1 as default ip address and 8000 as default port number which can be configured in your python environment. In your python setting, go to <your python env>\Lib\site-packages\django\core\management\commands\runserver.py and set 1. default_port = '<your_port>' 2. find this under def handle and set if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port

现在如果你运行"python manage.py runserver",它将默认运行在"0.0.0.0 "上:

享受编码.....

对于Django 3。X,修改settings.py中的default_port。是这样的:

from decouple import config
import django.core.management.commands.runserver as runserver

runserver.Command.default_port = config('WebServer_Port', default = "8088")

然后,如果你想指定端口,只需在你的setting.ini中添加一个新行

[settings]
WebServer_Port=8091

如果不是,请删除该参数。

在你的项目manage.py文件中添加

from django.core.management.commands.runserver import Command as runserver

然后在def main()中:

runserver.default_port = "8001"