0

私はhttp://lincolnloop.com/blog/2009/sep/15/using-django-inside-tornado-web-server/を調べていて、必要に応じて Django の一部を使用するのは面白くて便利だと思いました。竜巻。

http://lincolnloop.com/blog/2009/sep/15/using-django-inside-tornado-web-server/のセットアップに基づいて、どのように使用できますmanage.py syncdbか?

これまでに試したことは次のとおりです。manage.pyをtornadoプロジェクトと同じフォルダーに移動して実行しようとしましたmanage.py syncdbが、settings.pyが見つからないというメッセージが返されます。

setting.py を同じフォルダーに移動して、manage.py を再度実行しようとしたよりも。フィクスチャが見つからなかったことがわかります。今回は Django プロジェクトではないため、settings.py の設定方法がわかりません。

アドバイスや考えはありますか?

=================アップデート======================

こんにちは、Agos から提供された上記のアドバイスを使用して、python manage.py syncdb --settings=dj_tornado を実行しようとしましたが、戻ります

`"Error: Can't find the file 'settings.py'` in the directory containing 'manage.py'`. It appears you've customized things.
You'll have to run django-admin.py, passing it your settings module.
(If the file settings.py does indeed exist, it's causing an ImportError somehow.)"

だから私がしたことは実行するdjango-admin.py syncdb --settings=dj_tornadoことであり、それは戻ります"django.core.exceptions.ImproperlyConfigured: You haven't set the database ENGINE setting yet."

しかし、奇妙なことは、データベース エンジンが設定されていることです。これを修正するにはどうすればよいですか?ちなみに私はdjango 1.2.3とTornado 0.2を使用しています。

=================また更新します======================

こんにちは、manage.py と同じフォルダーにある settings.py ファイルを使用して、Agos から提供されたアドバイスを適用し、コマンドを実行しましたdjango-admin.py syncdb --settings=dj_tornado。私はまだエラーを受け取りました:

django.core.exceptions.ImproperlyConfigured: You haven't set the database ENGINE setting yet.

しかし、私はすでにデータベースベースのエンジンを次のように構成しています: dj_tornado.py:

from django.conf import settings
settings.configure(
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3', 
            'NAME': 'dev.db',

        }
    }
)

私はちょっと頭がおかしいです。Django プロジェクト外で syncdb を使用するにはどうすればよいですか?

一番。

4

1 に答える 1

1

正しく取得できた場合は、--settingsスイッチを使用して、manage.py を にポイントするだけで済みdj_tornado.pyます。これは結局、設定ファイルです。

更新 1

のヘルプから入手できますpython manage.py help

オプション:
  --settings=SETTINGS 設定モジュールへの Python パス。
                        「myproject.settings.main」。これが提供されない場合、
                        DJANGO_SETTINGS_MODULE 環境変数は
                        使用済み。

だから私はこれを試してみます:

python manage.py syncdb --settings=dj_tornado

更新 2

別のエラー、回答の別の更新!
まず最初に、そのブログ投稿がかなり古い (2009 年 9 月) ことを考慮してください。ジャンゴの

データベース
1.2 から設定が更新されました。

ブログ投稿の構文は次のとおりです。

settings.configure(DATABASE_ENGINE='sqlite3', DATABASE_NAME='dev.db')

Django 1.2.X では、これは正しくありません。これは同等のバージョンになります。

settings.configure(DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'dev.db'
    }
})

(コードの恐ろしいフォーマットで申し訳ありません)。

それでも問題が解決しない場合は、「標準」の Django 設定ファイルを作成してインポートすることを検討します。しかし、私の賭けは、データベース設定の構文にあります。

最後の更新、誓います

新しい構文で django-admin.py を再度使用してみましたか? もしそうで、それでもうまくいかない場合、最小限の settings.py は次のようになります:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'dev.db'
    }
}

元の構成を dj_tornado.py 内に保持し、settings.py を使用して syncdb を実行することもできます。

于 2010-12-12T17:16:56.523 に答える