可能性のある重複:
Djangoの一部のみを使用しますか?
DjangoのDB部分のみを使用
Django ORMをスタンドアロンとして使用したい。Googleで検索するのに1時間かかったが、まだいくつかの質問が残っている。
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を実行しています。).
ああ、私はそれを理解し、同じことをしようとしている人のために解決策を投稿します。
このソリューションでは、新しいモデルを作成することを想定しています。
まず、ファイルを保存するための新しいフォルダーを作成します。これを「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