我想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>
将其作为 runserver 保存在与 manage.py 相同的目录中
chmod +x runserver
并将其运行为
./runserver
实际上,在开发 Django 服务器中更改(仅)端口的最简单方法就像:
python manage.py runserver 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)
以下所有命令都可以在运行 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
你可以尝试manage.py
像这样添加一个参数
python manage.py runserver 0.0.0.0:5000
python manage.py 运行服务器
<your IP>:<port>
或者你像这样通过端口
python manage.py runserver 5000
python manage.py 运行服务器
<your port>
首先,您为应用程序应用迁移
python manage.py migrate
然后:
python manage.py runserver <your port>
在浏览器中运行 127.0.0.1:(你的端口)
我在这里聚会很晚,但是如果您使用像 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 版本
对于 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
如果不是,请删除此参数。
这是一个旧帖子,但对于那些感兴趣的人:
如果您想更改默认端口号,那么当您运行“runserver”命令时,您将从首选端口开始执行以下操作:
DEFAULT_PORT = "8080"
它适用于 python 2.7,但它也应该适用于较新版本的 python。祝你好运
我正在努力解决同样的问题并找到了一种解决方案。我想它可以帮助你。当您运行时python manage.py runserver
,它将采用 127.0.0.1 作为默认 IP 地址和 8000 作为默认端口号,可以在您的 python 环境中配置。在您的 python 设置中,转到<your python env>\Lib\site-packages\django\core\management\commands\runserver.py
并设置 1。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:
享受编码......