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

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


当前回答

如果您希望更改默认配置,请执行以下步骤:

打开终端类型命令 美元/usr/local/lib/python < > 2/3。x / dist-packages / django /核心/管理/命令 现在以超级用户身份在nano编辑器中打开runserver.py文件 $ sudo nano runserver.py 找到'default_port'变量,然后你会看到默认端口是'8000'。现在你可以把它改成任何你想要的。 现在退出并保存文件使用“CTRL + X和Y来保存文件”

注意:替换<2/3>。X和你可用的python版本

其他回答

在上一个版本的Django(目前:4.0.3)中,你可以在settings.py文件中添加这些行


from django.core.management.commands.runserver import Command as runserver
runserver.default_port = "8000"

我在这里很晚了,但如果你使用像PyCharm这样的IDE,在“运行”菜单下的“编辑配置”中有一个选项(运行>编辑配置),在那里你可以指定一个默认端口。当然,这只适用于通过PyCharm进行调试/测试。

我们创建了一个新的“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

对于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

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

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

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

workon someproject
runserver