web-dev-qa-db-ja.com

Django ORMをスタンドアロンとして使用

可能性のある重複:
Djangoの一部のみを使用しますか?
DjangoのDB部分のみを使用

Django ORMをスタンドアロンとして使用したい。Googleで検索するのに1時間かかったが、まだいくつかの質問が残っている。

  • Pythonプロジェクトをsetting.py、/ myApp /ディレクトリ、modules.pyファイルで設定する必要がありますか?
  • 新しいmodels.pyを作成し、syncdbを実行して、テーブルとリレーションシップを自動的に設定することはできますか、または既存のDjango=プロジェクトのモデルのみを使用できますか?
  • PYTHONPATHに関する質問はたくさんあるようです。既存のモデルを呼び出さない場合、これは必要ですか?

最も簡単なことは、誰かが基本的なテンプレートを投稿するか、プロセスのウォークスルーを行い、ファイルの構成を明確にすることだと思います:

db/
   __init__.py
   settings.py
   myScript.py
orm/
   __init__.py
   models.py

そして基本的な要点:

# settings.py
from Django.conf import settings

settings.configure(
     DATABASE_ENGINE   = "postgresql_psycopg2",
     DATABASE_Host     = "localhost",
     DATABASE_NAME     = "dbName",
     DATABASE_USER     = "user",
     DATABASE_PASSWORD = "pass",
     DATABASE_PORT     = "5432"
)

# orm/models.py
# ...

# myScript.py
# import models..

そして、次のようなものを実行する必要があるかどうか:Django-admin.py inspectdb ...

(ああ、コマンドライン引数に関する変更があればWindowsを実行しています。).

56

ああ、私はそれを理解し、同じことをしようとしている人のために解決策を投稿します。

このソリューションでは、新しいモデルを作成することを想定しています。

まず、ファイルを保存するための新しいフォルダーを作成します。これを「standAlone」と呼びます。 「standAlone」内で、次のファイルを作成します。

__init__.py
myScript.py
settings.py

明らかに、「myScript.py」には任意の名前を付けることができます。

次に、モデルのディレクトリを作成します。

モデルディレクトリに「myApp」という名前を付けますが、これはプロジェクト内の通常のDjangoアプリケーションであるため、作成中のモデルのコレクションに適切に名前を付けます。

このディレクトリ内に2つのファイルを作成します。

__init__.py
models.py

既存のDjango=プロジェクトからmanage.pyのコピーが必要になるか、またはDjangoインストールパスからコピーを取得できます:

Django\conf\project_template\manage.py

Manage.pyを/ standAloneディレクトリにコピーします。 Okしたがって、次の構造が必要になります。

\standAlone
    __init__.py
    myScript.py
    manage.py
    settings.py
\myApp
    __init__.py
    models.py

myScript.pyファイルに次を追加:

# settings.py
from Django.conf import settings

settings.configure(
    DATABASE_ENGINE    = "postgresql_psycopg2",
    DATABASE_NAME      = "myDatabase",
    DATABASE_USER      = "myUsername",
    DATABASE_PASSWORD  = "myPassword",
    DATABASE_Host      = "localhost",
    DATABASE_PORT      = "5432",
    INSTALLED_APPS     = ("myApp")
)

from Django.db import models
from myApp.models import *

および、これをsettings.pyファイルに追加します

    DATABASE_ENGINE    = "postgresql_psycopg2"
    DATABASE_NAME      = "myDatabase"
    DATABASE_USER      = "myUsername"
    DATABASE_PASSWORD  = "myPassword"
    DATABASE_Host      = "localhost"
    DATABASE_PORT      = "5432",
    INSTALLED_APPS     = ("myApp")

そして最後にmyApp/models.py:

# myApp/models.py
from Django.db import models

class MyModel(models.Model):
     field = models.CharField(max_length=255)

以上です。 Django=データベースを管理するには、コマンドプロンプトで/ standaloneディレクトリに移動し、次を実行します。

manage.py sql MyApp
32