我想在一个多余的config.ini中指定manage.py runserver侦听的默认端口。有没有比解析sys. exe更简单的解决方案?在manage.py和插入配置端口Argv ?
目标是运行./manage.py runserver,而不必每次都指定地址和端口,而是让它从config.ini中获取参数。
我想在一个多余的config.ini中指定manage.py runserver侦听的默认端口。有没有比解析sys. exe更简单的解决方案?在manage.py和插入配置端口Argv ?
目标是运行./manage.py runserver,而不必每次都指定地址和端口,而是让它从config.ini中获取参数。
当前回答
从Django 1.9开始,我找到的最简单的解决方案(基于Quentin stford - 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)
其他回答
首先你为app应用迁移
python manage.py migrate
然后:
python manage.py runserver <your port>
在浏览器运行127.0.0.1后:(你的端口)
对于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
如果不是,请删除该参数。
在上一个版本的Django(目前:4.0.3)中,你可以在settings.py文件中添加这些行
from django.core.management.commands.runserver import Command as runserver
runserver.default_port = "8000"
实际上,在Django服务器开发中修改(唯一)端口的最简单方法是:
python manage.py runserver 7000
它应该在http://127.0.0.1:7000/上运行开发服务器
用下面的代码创建一个bash脚本:
#!/bin/bash
exec ./manage.py runserver 0.0.0.0:<your_port>
将其保存为与manage.py相同目录下的runserver
chmod +x runserver
然后运行它
./runserver