Shell脚本中的Python Shell导入
我想在测试东西的时候省点打字,特别是在使用 python manage.py shell
的时候。简单来说,我有一个小脚本,可以让我进入 >>>
的命令行界面,但我希望能自动把我在 views.py 文件里写的导入语句推送进去,这样我每次测试的时候就不用再打这些导入语句了。我试着把这些导入语句写进脚本里,但好像没有成功传到 Python 的命令行里。
这是我目前的代码。
#!/usr/local/bin/bash
python ~/path/to/manage.py shell
import datetime
from django.shortcuts import render_to_response
from mymodel.models import *
from myapp.forms import *
... and so on
我希望的效果是,所有的导入语句都能自动输入到 Python 的命令行里,这样我每次调试的时候就不用再手动输入或复制粘贴了。
2 个回答
2
把你的前置内容放到一个文件里。这里我假设这个文件叫做 prequel
。然后你可以这样调整你的bash脚本:
cat prequel - | python ~/path/to/manage.py shell
cat
是一个可以把文件内容连接在一起的命令,但它也可以把标准输入当作一个文件来处理,所以我们就是把你的前置内容和标准输入连接在一起,然后把这个连接的结果传给shell。
1
还有一个叫做django-extensions的工具,详细信息可以查看这个链接:http://www.michelepasin.org/blog/2010/11/17/preloading-stuff-in-djangos-interactive-shell/