来自Python脚本的Django runserver

laf*_*erc 3 python django django-1.8

启动Django服务器的常规方法是从终端或bash脚本运行以下命令:

python manage.py runserver [Ip.addr]:[port] 
Run Code Online (Sandbox Code Playgroud)

例如

python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)

如何从Python脚本启动Django服务器?

一种选择如下

import os
if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")
    from django.core.management import execute_from_command_line
    args = ['name', 'runserver', '0.0.0.0:8000']
    execute_from_command_line(args)
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

Amr*_*ziz 8

Python已经内置了HTTP服务器

python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

或者您可以选择运行django服务器

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")

from django.core.management import call_command
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application()
call_command('runserver',  '127.0.0.1:8000')
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答,但我收到此错误:django.core.exceptions.AppRegistryNotReady:模型尚未加载。 (2认同)
  • 在 call_command 之前,您可以尝试: from django.core.wsgi import get_wsgi_application application = get_wsgi_application() (2认同)