Python / Django新手在这里!
在我的新项目中,我能够加载django模板页面和admin部分,以及从admin中更新和删除内容...我能够毫无问题地收集static,而且我也可以运行来自bash的具有manage.py的所有命令,全部来自virtualenv内部。
我陷入困境的地方试图通过子进程从应用程序的views.py运行“ python manage.py check”,例如:
some_app / views.py
from django.shortcuts import render
from django.http import HttpResponse
import subprocess
import shlex
def home(request):
cmd = 'python manage.py check'
subprocess.Popen(shlex.split(cmd))
return HttpResponse("<html><body>Hello World</body></html>")
HTML“ Hello World”加载良好,子过程命令导致Apache错误:
"python: can't open file 'manage.py': [Errno 2] No such file or directory".
"python: can't open file '../myweb/manage.py': [Errno 2] No such file or directory".
我不确定我为什么会这样,这是我拥有的文件结构:
如果enyone有任何提示,我将不胜感激!
设置信息:
答案 0 :(得分:0)
您必须声明正确的相对路径
some_app /
views.py(您在这里)
project_name /
manage.py(您必须在此处进入)
它变成:
def home(request):
cmd = 'python ../project_name/manage.py check'
subprocess.Popen(shlex.split(cmd))
return HttpResponse("<html><body>Hello World</body></html>")
或者简单地:
丹尼尔·罗斯曼(Daniel Roseman)在评论中写道
call_command('check')