1

我已经按照 Django 网站 (https://docs.djangoproject.com/en/1.4/intro/tutorial01/) 上的教程(第 1 部分和第 2 部分),并设法创建了几个文件夹并连接到我的网站。我的应用程序被称为“应用程序”,所以我的文件夹结构看起来有点像:

  • 主文件夹
  • --- __初始化__ .py
  • ---test.py
  • --- djangoSite(由 Django 创建)
  • ------ 管理.py
  • ------ djangosite
  • --------- 其他 .py 文件
  • ------应用程序
  • ---------- __初始化__ .py
  • --------- 模型.py
  • --------- 其他 .py 文件

我将 models.py 文件更改为:

class Result(models.Model):
    options = models.CharField(max_length = 1000, unique = False)
    reverse = models.DecimalField(decimal_places = 6, max_digits = 12)

test.py 目前在其他一些类上运行几个测试。我想要的是让我的 test.py 类运行这些测试并将结果保存在数据库中(列和反向)。我希望在我的 test.py 类中做这样的事情:

import models.py
if __name__ == "__main__":
    optionResult = someTestsThatRuns
    reverseResult = someOtherTestThatRuns
    models.Result c;
    c.options = optionResult 
    c.reverse = reverseResult 

我希望最后两行将结果保存在数据库中。这可能吗?如何从 app 文件夹中导入 models.py?

谢谢

编辑:当我说 someTestsThatRuns 时,这些不是单元测试。它们实际上是一个函数,它返回一个列表和一些带有“PASS”或“FAIL”的字符串。对困惑感到抱歉

4

2 回答 2

3

在 app 文件夹中创建一个空__init__.py文件,以便 Python 将该目录视为一个包。然后做:

from app.models import Result

optionResult = someTestsThatRuns
reverseResult = someOtherTestThatRuns
c = Result()
c.options = optionResult 
c.reverse = reverseResult
c.save()

这会将'c'保存到数据库中。

请注意,Django 的测试套件可以创建自己的测试数据库,该数据库在单独的数据库上运行测试。您可以在此处阅读有关 Django 测试的更多信息。 https://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs

于 2012-07-04T21:01:37.703 回答
1

FIXED正如大卫在评论中提到的,环境变量确实没有设置。由于我在 Windows 中,我必须做的是开始 -> 计算机 -> 属性 -> 高级系统设置 -> 环境变量 -> 添加环境变量。

在那里我添加了 'DJANGO_SETTINGS_MODULE' 及其位置为 'C:\path\to\your\settings.py' 之后,在命令提示符下,我必须执行以下操作:

enter python
>import sys
>import os
>sys.path.append(r"C:\location\to\settings.py")
>from django.core.management import setup_environ
>setup_environ(settings)
>sys.path.append(os.getcwd() + '\\from\\current\\to\\models.py'
>from models import Result 

这一切都在http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/进行了解释,尽管我确实发现它有点难以理解。我在导入模型时遇到的另一个问题是有两个名称完全相同的文件夹(djangoSite),因此在导入时,计算机在试图找出哪个文件夹时遇到了一些问题。我不得不重命名、删除、重置环境变量并重新检查我在整个文件中拥有的所有路径 =/

如果我的解释不是最好的,我很抱歉,我几乎不明白我做了什么,但我希望这对未来的其他人有所帮助

于 2012-07-07T16:34:35.363 回答