如何运行外部命令(Django)来覆盖服务器中的文件?

2024-09-21 01:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

修改inspectdb之后,我想在加载web上的索引页时运行它。所以,在我看来视图.py-def index,我正在尝试下一步:

def index(request):
 subprocess.Popen("rm /path/app/models.py", shell=True)
 subprocess.Popen("python2.7 /path/manage.py inspectdb_New > /path/app/models.py", shell=True)
 return render_to_response('index/index.html', context_instance = RequestContext(request))

那是行不通的。我试过了操作系统, 子流程调用当然,但它仍然不起作用。 至少对我来说,看起来我不能改变型号.py但我不知道有什么问题。。。你知道吗

有什么主意吗?你知道吗

谢谢。你知道吗


Tags: pathrmpy视图webtrueappindex
2条回答

你的问题有两个部分: a) 您希望shell在调用view函数时执行某些操作。我的闹钟已经响了。 b) 您想加载新模型。不会发生的。必须重新加载才能加载新代码(模型自省等)。可能您使用runserver命令,看看Django autoreloader代码:https://github.com/django/django/blob/master/django/utils/autoreload.py

它跟踪gen\u filenames()列出的文件,并在更改某些内容时重新加载。您的模型未列出,因此对代码的更改不会反映出来。你知道吗

我会触摸一些东西或删除.pyc文件来强制重新加载程序。你知道吗

你不能改变你的想法型号.py因为模型(和其他python代码)只在服务器启动时加载。你知道吗

相关问题 更多 >

    热门问题