django更改默认的runserver端口

时间:2014-05-13 18:39:10

标签: python django django-manage.py manage.py

我想使manage.py runserver侦听的默认端口在无关的config.ini中可指定。是否比在sys.argv内解析manage.py并插入配置的端口更容易解决?

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

12 个答案:

答案 0 :(得分:122)

使用以下内容创建一个bash脚本:

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

将其保存为与manage.py

相同的目录中的runserver
chmod +x runserver

并将其作为

运行
./runserver

答案 1 :(得分:63)

实际上,在开发Django服务器中更改(仅)端口的最简单方法就是:

python manage.py runserver 7000

应该在http://127.0.0.1:7000/

上运行开发服务器

答案 2 :(得分:33)

从Django 1.9开始,我发现的最简单的解决方案(基于Quentin Stafford-Fraser的解决方案)是向manage.py添加几行,在调用{之前动态修改默认端口号{1}}命令:

runserver

答案 3 :(得分:15)

以下所有命令都可以在运行django时更改端口:

python manage.py runserver 127.0.0.1:7000

python manage.py runserver 7000

python manage.py runserver 0:7000

答案 4 :(得分:8)

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

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

答案 5 :(得分:7)

我们创建了一个新的&#39; runserver&#39; management命令,它是标准的一个瘦包装器,但更改了默认端口。粗略地说,你创建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

答案 6 :(得分:2)

您可以尝试在 void handleMouseWheel(HWND hwnd, int delta) { SCROLLINFO si; si.cbSize = sizeof(SCROLLINFO); si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE; if (!GetScrollInfo(hwnd, SB_VERT, &si)) { ErrorExit(LPWSTR(NAMEOF(GetScrollInfo)), __LINE__, LPWSTR(__FILENAME__)); } int nOldPos = si.nPos; int nPos = nOldPos + wheelScrollLines(hwnd, delta, si.nPage); si.fMask = SIF_POS; SetScrollPos(hwnd, SB_VERT, nPos, TRUE); GetScrollInfo(hwnd, SB_VERT, &si); if (!ScrollWindow(hwnd, 0, nOldPos - si.nPos, NULL, NULL)) { ErrorExit(LPWSTR(NAMEOF(ScrollWindow)), __LINE__, LPWSTR(__FILENAME__)); } UpdateWindow(hwnd); } 中像这样添加参数

manage.py
<块引用>

python manage.py runserver python manage.py runserver 0.0.0.0:5000

或者你像这样传递端口

<your IP>:<port>
<块引用>

python manage.py runserver python manage.py runserver 5000

答案 7 :(得分:1)

我在这里参加派对的时间已经很晚,但如果您使用像PyCharm这样的IDE,可以在“运行”菜单(运行&gt;编辑配置)下的“编辑配置”中选择一个选项,您可以在其中指定默认端口。当然,这只有在您通过PyCharm进行调试/测试时才有意义。

答案 8 :(得分:1)

在Pycharm中,您只需将端口添加到参数中

the answer

答案 9 :(得分:0)

这是一篇旧帖子,但感兴趣的是:

如果要更改默认端口号,那么在运行&#34; runserver&#34;命令从您的首选端口开始执行此操作:

  1. 找到你的python安装。 (你可以安装多个pythons,你也可以拥有你的虚拟环境版本,所以一定要找到合适的一个)。
  2. 在python文件夹中找到site-packages文件夹。你可以在里面找到你的django装置
  3. 打开django文件夹 - &gt;核心 - &gt;管理 - &gt;命令
  4. 在命令文件夹中打开带有文本编辑器的runserver.py脚本
  5. 找到DEFAULT_PORT字段。它默认等于8000。把它改成你喜欢的任何东西 DEFAULT_PORT = "8080"
  6. 重新启动服务器:python manage.py runserver并查看它是否使用您的设置端口号
  7. 它适用于python 2.7,但它也适用于较新版本的python。祝你好运

答案 10 :(得分:0)

如果您想更改默认配置,请按以下步骤操作:

  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保存文件”保存文件

  5. 注意:将&lt; 2/3&gt; .x替换为您可用的python版本

答案 11 :(得分:-3)

我正在努力解决同样的问题,并找到了一个解决方案。我想它可以帮到你。 运行python manage.py runserver时,默认IP地址为127.0.0.1,默认端口号为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

现在,如果你运行&#34; python manage.py runserver&#34;它默认运行在&#34; 0.0.0.0:

享受编码......