0

私はこのモデルを持っています

class Type(models.Model):
    type = models.CharField(max_length=50)
    value = models.CharField(max_length=1)

その中に、SQLファイルからのデータがあります:

INSERT INTO quest_type (type, value) VALUES ('Noun', '1');
INSERT INTO quest_type (type, value) VALUES ('Adjective', '2');
INSERT INTO quest_type (type, value) VALUES ('Duration', '3');

Python シェルでこれらの値にアクセスするにはどうすればよいですか? たとえば、型がわかっている場合、値を取得するにはどうすればよいでしょうか (その逆も同様です)。構文がどのように機能するかわかりません。

4

3 に答える 3

0

あなたはそれを得ることができるはずです

Type.objects.filter(type=typeImInterestedIn)

気になることがいくつかあります。-ORMを使用しているDBに手動で書き込むことは避けたいと思うでしょう。これは、不一致の可能性を生み出すだけです。-オブジェクト型の命名は、Pythonのネイティブ関数型に非常に近いため、ほとんど問題になりません。

于 2012-09-27T14:01:00.517 に答える
0

データベースについてどの程度理解しているかは不明です。この回答が基本的すぎる場合は、お詫び申し上げます(その場合は、質問を編集して、使用している実際のデータベースエンジンに関する情報を含め、サンプルコードを表示してください。データベースから読み取ります)。

お持ちのSQLファイルはSQLデータベースと同じではありません。これは、SQLデータベースにレコードを作成する一連のコマンドです。まず、マシンにデータベースエンジンをインストールして構成し、次にその.sqlファイルを「実行」して、レコードがデータベースに作成されるようにする必要があります。

実際のデータベースを作成したら、使用しているSQLエンジンの種類と、データベースの名前と場所がわかるようにDjangoを構成する必要があります。

最後に、データベースが作成され、Djangoがエンジンと通信するように構成されたら、Pythonコードを記述して、Typeクラスのインスタンスをインスタンス化し、データベースからレコードを読み取り、値を検査します。

Typeまた、これはどのプログラミング言語のクラスにとっても本当に悪い名前でありtypevalueSQLデータベースの列にとってはどちらも悪い名前であることを指摘しておきます。

于 2012-09-27T14:01:10.680 に答える
0

django の python shell (python manage.py shell) を使用している場合は、まずモデルを名前空間にインポートする必要があるため、my_app.models import Type から入力します。

db 構文からオブジェクトを 1 つだけ取得する場合は、次のようになります。

result = Type.objects.get(type='your_query')

複数のオブジェクトを取得したい場合、1 つのオブジェクトの構文は次のようになります。

result = Type.objects.filter(type='your_query')

2 番目のメソッドは、単一のオブジェクトではなくリストを返します

filter write を使用した後にリストをループするには:

for item in result:
    item.value #will print values from matched rows
于 2012-09-27T14:03:40.307 に答える