1

Django サイト (https://docs.djangoproject.com/en/1.4/intro/tutorial01/) のチュートリアル (パート 1 と 2) に従って、いくつかのフォルダーを作成し、自分の Web サイトに接続することができました。私のアプリは「アプリ」と呼ばれているため、フォルダー構造は次のようになります。

  • メインフォルダー
  • --- __初期化__ .py
  • ---test.py
  • --- djangoSite (Django で作成)
  • ------ manage.py
  • ------ジャンゴサイト
  • --------- その他の .py ファイル
  • ------アプリ
  • ---------- __初期化__ .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 

最後の 2 行で結果をデータベースに保存したいと思います。これは可能ですか?アプリ フォルダから models.py をインポートするにはどうすればよいですか?

ありがとうございました

編集: someTestsThatRuns と言うとき、これらは単体テストではありません。それらは実際には、リストと「PASS」または「FAIL」のいずれかを含むいくつかの文字列を返す関数です。混乱させて申し訳ありません

4

2 に答える 2

3

__init__.pyPython がディレクトリをパッケージとして扱うように、app フォルダーに空のファイルを作成します。次に、次のようにします。

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 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/で説明されていますが、理解するのは少し難しいと思いました。モデルのインポートで発生したもう 1 つの問題は、まったく同じ名前のフォルダー (djangoSite) が 2 つあったため、インポート時に、コンピューターがどれを見つけようとしているかに問題があったことです。環境変数の名前を変更、削除、リセットし、ファイル全体のすべてのパスを再確認する必要がありました =/

私の説明が最善でない場合は申し訳ありません。自分がしたことをほとんど理解できませんでしたが、これが将来他の人に役立つことを願っています

于 2012-07-07T16:34:35.363 に答える