Django中执行python manage.py runserver后如何继续在终端输入命令?
别担心,你遇到的其实是Django开发服务器的正常运行逻辑,我来给你梳理清楚:
首先,为什么你的终端会"卡住"没法输入新命令?
当你执行python manage.py runserver后,这条命令启动了Django的开发服务器进程,它会一直运行在终端前台,实时监听请求,所以这个终端窗口会被这个进程占用,你按回车自然只能换行,没法输入新命令——这不是卡顿,是服务器在正常工作哦。
那教程里讲师的^C(trydjango) $是什么意思?^C是终端对Ctrl + C快捷键的显示符号,这个快捷键的作用就是终止当前正在运行的前台进程。当你按下Ctrl+C后,Django开发服务器会停止运行,终端就会回到你的虚拟环境提示符(也就是(trydjango) $),这时你就能正常输入makemigrations或者其他命令了。
另外给你个更高效的小技巧:
如果你不想每次都终止服务器,完全可以打开新的终端窗口/标签页,激活同一个虚拟环境(Linux/macOS用source trydjango/bin/activate,Windows用trydjango\Scripts\activate),然后在新窗口里执行数据库迁移、安装依赖这些操作,原来的开发服务器可以继续运行,不用频繁重启,开发效率会更高~
最后提醒下:Django开发服务器会自动检测代码变化并重启,所以日常改代码不用停服务器,只有当你修改了数据库模型需要执行迁移,或者安装了新的Python包时,才需要在另一个终端操作,或者先停掉服务器再执行命令。
内容的提问来源于stack exchange,提问作者user12951955

