我已经在Django网站(https://docs.djangoproject.com/en/1.4/intro/tutorial01/)上按照教程(第1部分和第2部分)进行了操作,并设法创建了几个文件夹并连接到我的网站。我的应用程序名为'app',因此我的文件夹结构看起来有点像:
我将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”的字符串。对不起困惑
答案 0 :(得分: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
答案 1 :(得分:1)
FIXED 正如David在评论中提到的,环境变量确实没有设置。因为我在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),所以在导入时,计算机有一些问题试图找出哪一个。我不得不重命名,删除,重置环境变量并重新检查我在整个文件中的所有路径= /
我很抱歉,如果我的解释不是最好的,我几乎不明白我做了什么,但我希望这将有助于其他人