0

我仍处于 Django 应用程序的开发阶段。甚至在编写我的views.py 之前,我都会对它们进行测试以查看我的模型是否正确定义。我通过调用在终端中执行此操作

python manage.py shell

但是哦,我经常犯一些语法错误,提示我中止 shellctrl-D并重新输入所有内容。这个过程是永远的。如果我可以将所有这些都写在某个文件中只是为了我的试验,如果一切顺利,将其复制到views.py.

这个过程是什么?trial.py是否像在我的应用程序目录中创建一个一样简单。我不需要导入 Django 环境吗?最好的方法是什么?

4

6 回答 6

5

写单元测试怎么样?您可以使用一个命令轻松执行它们。您可能可以通过阅读django 手册中的测试章节开始

于 2010-11-25T18:25:13.093 回答
2

一定要为简单的实验创建一个 trial.py,然后在做之后

python manage.py shell

你可以做

>>> import trial

然后直接从提示符调用试验中的代码,例如

trial.myfunc()

如果您需要更改内容,您可以保存更改后的 trial.py 并执行

reload(trial)

当然,您可能需要在交互式会话中重新创建任何现有对象才能使用您的更改。

这应该被视为对编写单元测试的补充(根据 Jani 的回答),但我确实发现这种方法对于使用迭代细化进行尝试很有用。

于 2010-11-25T18:27:59.723 回答
1

在 Django 项目目录中创建测试文件,并将项目路径添加到 env 变量:

import sys
sys.path.append(os.path.realpath(os.path.dirname(__file__)))

之后,您将能够从项目中导入任何模块(例如,models.py 中的模型或仅 views.py 中的函数)并使用您最喜欢的 IDE 及其编辑器和 shell。

于 2010-11-25T18:33:10.230 回答
1

对于更简单的情况,您可以使用django-extensions插件,其中包含shell_plus类似于标准shell命令但预加载所有模型的管理命令。

于 2010-11-25T18:55:09.523 回答
1

您需要设置用于设置的模块

于 2010-11-25T18:58:11.820 回答
0

我之前也遇到过这个问题

可能你可以安装 ipython,它有一个神奇的函数,如下所示:

%节省。

这会将您输入的内容保存到文件中。

而ipython是一个非常迷人的工具,它可以完美地代替标准python提示符。它还有其他奇妙的东西!

而在 django 中,如果你已经安装了 ipython,当你输入 python manage.py shell 时,

它将直接调用 ipython。

于 2010-11-26T13:55:55.203 回答