Django创建的models.py文件是否可以被另一个python文件用来填充数据库?

时间:2012-07-04 20:51:50

标签: python django postgresql

我已经在Django网站(https://docs.djangoproject.com/en/1.4/intro/tutorial01/)上按照教程(第1部分和第2部分)进行了操作,并设法创建了几个文件夹并连接到我的网站。我的应用程序名为'app',因此我的文件夹结构看起来有点像:

  • mainFolder
  • ---的 __ 初始化 __ 的.py
  • --- test.py
  • --- djangoSite (由Django创建)
  • ------ manage.py
  • ------ djangosite
  • ---------其他.py文件
  • ------ app
  • ----------的 __ 初始化 __ 的.py
  • --------- models.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”的字符串。对不起困惑

2 个答案:

答案 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),所以在导入时,计算机有一些问题试图找出哪一个。我不得不重命名,删除,重置环境变量并重新检查我在整个文件中的所有路径= /

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