@ito2mass

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

python Django 開発サーバーが正常に起動しない。

解決したいこと

pythonで「動かして学ぶ python Django 開発入門」を読んでWebアプリをつくっています。
開発サーバーが正常に起動しません。
Django のデータベース を使用します。最後の後に何も表示されていないので、何が問題かが分からずに、解決方法を検討することができずにいた。OperationalError
解決方法を教えて下さい。

発生している問題・エラー

System check identified no issues (0 silenced).
psycopg2.OperationalError
django.db.utils.OperationalError

該当するソースコード

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'diary.apps.DiaryConfig',
]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'private_diary',
        'USER': os.environ.get('DB_USER'),
        'PASSWORD': os.environ.get('DB_PASSWORD'),
        'HOST': '',
        'PORT': '',
    }

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,

    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'INFO'
        },

        'diary': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'dev'
        },
    },
    'formatters': {
        'dev': {
            'format': '\t'.join([
                '%(asctime)s',
                '[%(levelname)s]',
                '%(pathname)s](Line:%(lineno)d',
                '%(message)s'
            ])
        },
    }
}

新しいpythonファイル
from django.urls import path

from . import views


app_name = 'diary'
urlpatterns = [
    path('', views.IndexView.as_view(), name="index"),
]

今までしたこと

①python仮想環境を作成し、仮想環境名を「private_diary」とする。
②Django及びpycharmをインストール。
③PostgreSQLをインストールし環境変数の設定を行うC:\Program Files\PostgreSQL\13\binでpathが通ってる事も確認済み。後、psycopg2-binaryでインストール
④Djangoプロジェクトを作成しアプリケーションも作成。
⑤PyCharm上のPython設定を変更する。
⑥Djangoのデータベース設定をPostgeSQLに変更しロギングを設定する
⑦ルーティングを設定し新たにpythonファイルを作成。
⑧トップページ用のテンプレートを作成しHTMLファイルを作成。
⑨開発サーバを起動させる
ここでhttp://127.0.0.1:8000/
と表示されればいいみたいですが上記のエラーが出ます。

### 自分で試したこと

python Django開発入門という本を読みながら進めています。
上記のエラーに対して2日調べ上げても解決方法が見つからず助けを求めます。
初心者です。よろしくお願いします。


### 参考書

動かして学ぶ python Django 開発入門 

0 likes

3Answer

それだけだと判断が難しいので、

  • どんな手順・操作を今までやってきたのか
  • 現状のコードやDjango関係の設定ファイルなど諸々

をご共有いただけるといいかもしれません!(皆さんが該当の本を読んでいるわけではないので)

1Like

Comments

  1. @ito2mass

    Questioner

    ご回答ありがとうございます!自分なりに編集をしてみました汗よろしくお願いします。汗

詳細な情報ありがとうございます!

お仕事がMySQL + Djangoで、PostgreSQLは他である程度触っていたくらい・・・なので少し自信が無いのですが、まず詳細なエラー内容が出ていない・・・という点に関してはPostgreSQLの設定を調整すると出るようになるかもしれません!

Django のデータベースを PostgreSQL に変更しようと、psycopg2を使用してDjango 側とPostgreSQL 側のコンフィギュレーションを済ませて、Django のデータモデルをマイグレーションしようとしたときに、以下の空のエラーが発生した。最後OperationalErrorの後に何も表示されていないので、何が問題かが分からずに、解決方法を検討することができずにいた。
...
原因はPostgreSQLの言語のコンフィギュレーションだった!
次のPostgreSQLのコンフィギュレーションファイル
C:\Program Files\PostgreSQL\10\data
postgresql.confを開き、以下のように変更し、パソコンを再起動する。するとエラーが表示されるようになった。

なので、まずは↑の記事のようにpostgreslq.confのファイルを調整してみて再度開発サーバーの起動もしくはマイグレーションなどのコマンドを試してみてもいいかもしれません!

その後にもしpassword authentication failed for user ...みたいなエラー内容が表示されるようでしたらPostgreSQLのDB認証に失敗しています!別のエラー内容が出ている・・・場合は(解決が難しそうでしたら)そのエラー内容を別途コメントなどでご共有いただけますと幸いです!

DB認証に失敗している場合、

  • ユーザー名が正しくない(ユーザーアカウントが追加されていない・追加先が間違っている(private_diaryのDBに追加されていない)・スペルミスなどしているなど)
  • パスワードが正しくない
  • 環境変数が設定されていない、もしくはPythonから正しく取得できていない

などが考えられます!
環境変数に関してはpythonなどとコマンドを打ってPythonを起動した後、import osprint(os.environ.get('DB_USER'))print(os.environ.get('DB_PASSWORD'))と順番に実行してみて、環境変数のユーザー名とパスワードを正常に取れているか確認してみていただいてもいいかもしれません!(想定したユーザー名やパスワードになっているか、空になっていないかなど)

問題の切り分けの目的として、PostgreSQL単体で色々試してみるのもおすすめです!

例えば↑の記事でPostgreSQLの起動をしてみたり(起動自体に失敗するならPostgreSQLのインストール周りの問題かもしれません)、データベース接続を試してみたり(ここで弾かれる場合PostgreSQLのユーザーアカウント周りに問題がある可能性があります)を試してみて、Django関係ないところで色々試してみると原因の特定がしやすいかもしれません!

1Like

Comments

  1. @ito2mass

    Questioner

    細かく、本当にありがとうございますあ!汗今日教えていただいたこと試してみます!
  2. @ito2mass

    Questioner

    ユーザー名とパスワードの追加先が間違っていました!丁寧に回答ありがとうございました!
  3. 解決したようで良かったです!回答が役立っていましたらLGTM押しておいていただけますとこちらにもプラスになって助かります!
  4. @ito2mass

    Questioner

    Watching for file changes with StatReloaderと出てきており、アクセス許可エラーが出てしましました汗 よろしければご教授ください汗
  5. 自分も同じところで詰まりました。
    ここのPostgreSQLを起動させるときのパスワードなんですけど、PostgreSQLをインストールした際に登録したパスワードになるそうです。入力したらうまくいきました。スクリーンショット 2023-06-15 134753.png
    参考までに、資料を乗せておきます。

Watching for file changes with StatReloader自体は開発環境でのローカルファイルなどが更新された際にそれを自動反映するための監視機能のものなので出ていて問題ないと思われます!

アクセス許可エラー

別途Permission denied的な何らかのエラーが出ていて開発環境のサーバーが起動しない場合、そちらのエラー内容をご共有いただけますと幸いです!

1Like

Your answer might help someone💌