1

Python 2.7.2 と Django 1.5 をインストールして最初のアプリケーションを作成する旅の 2 日目ですが、models.py を同期してデータベースを更新できません。

ツール: Windows Vista、Putty SSH 場所: Bluehost (www.bluehost.com) サーバー

これは私がすでに読んだトピックですが、私の問題を解決しません: Why did I get error for python manage.py syncdb (IndentationError: unexpected indent)

アドバイスはmodels.py のタブとスペース( indentation ) に関するものでしたが、以下 (models.py) でわかるように、正しいインデントを使用していると思います。

from django.db import models

# Create your models here.

class posts(models.Model):

    author = models.CharField(max_lenght = 30)
    title = models.CharField(max_lenght = 100)
    bodytext = models.TextField()
    timestamp = models.DateTimeField()

私がすでに行ったこと:

Python 2.7.2 をインストールしました。以下を確認してください。

username@domain.com [~]# python -V
Python 2.7.2 

Django 1.5 をインストールしました。確認してください

username@domain.com [~]# python
Python 2.7.2 (default, Mar 27 2013, 12:07:49)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from django import get_version
>>> get_version()
'1.5'
>>>

MySQL-python-1.2.4 をインストールしました (この時点では、正しく動作するかどうかわかりません):

username@domain.com [~]# python
Python 2.7.2 (default, Mar 27 2013, 12:07:49)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

django-admin.pyに問題があり、.bashrc PATH エントリを変更して解決し、colde を正常に実行しました。

django-admin.py startproject mysite

次に、models.pyを次のように変更しました (単純なブログを作成するため)。

from django.db import models

# Create your models here.

class posts(models.Model):

    author = models.CharField(max_lenght = 30)
    title = models.CharField(max_lenght = 100)
    bodytext = models.TextField()
    timestamp = models.DateTimeField()

次に、mysql データベースユーザーを作成し、データベースにユーザーを追加し、すべての権限を付与しました(すべて bluehost フロントエンド パネルで行いました)。

次に、settings.pyを次のように変更しました。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'domain_dbname',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': 'domain_username',
        'PASSWORD': 'password',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

問題

今こそデータベースを更新する時です。私はこれを試します:

python models.py syncdb

そして、ここに私が得るものがあります:

Traceback (most recent call last):
  File "models.py", line 1, in <module>
    from django.db import models
  File "/home1/domain/python/lib/python2.7/site-packages/django/db/__init__.py", line 11, in <module>
    if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/home1/domain/python/lib/python2.7/site-packages/django/conf/__init__.py", line 52, in __getattr__
    self._setup(name)
  File "/home1/domain/python/lib/python2.7/site-packages/django/conf/__init__.py", line 45, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

だから私の質問は:

この行が機能しないのはなぜですか?

python models.py syncdb
4

1 に答える 1

5

これを使って:

python manage.py syncdb
于 2013-03-28T14:02:28.993 に答える