質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

739閲覧

Django + Nginx on Docker ログイン後の(400) Bad Request を解消したい

NiTa

総合スコア1

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/10/16 19:25

編集2022/10/16 19:27

前提

現在、Docker上でDjango, Nginx, Gunicornを用いて会員サイトを製作中です、
会員登録後、ログインをする際にログインIDとパスワードを入力します。
送信ボタンをクリックした後、400 Bad Requestと出ました。

前提としてmakemigrations, migrateコマンドを利用し、Djangoとデータベースの連携が取れたことを確認しております。

実現したいこと

  • ログインを成功させること

発生している問題・エラーメッセージ

ecap5-nginx-1 | 192.168.192.1 - - [16/Oct/2022:18:57:57 +0000] "POST /login/%7Burl%20'Login'%20%%7D HTTP/1.1" 400 157 "-" "-" "-"

該当のソースコード

settings.py

1ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS").split(" ")

env.prod

1DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1] ecap

url.py

1from django.contrib import admin 2from django.urls import path 3from django.conf import settings 4from django.conf.urls.static import static 5 6from home.views import home 7from login.views import Login 8from signup.views import AccountRegistration 9from login.views import Logout 10from myaccount.views import myaccount 11 12urlpatterns = [ 13 path('', home, name='home'), 14 path('login/', Login, name='Login'), 15 path('logout/', Logout, name='Logout'), 16 path('signup/', AccountRegistration.as_view(), name='signup'), 17 path('myaccount/', myaccount, name='myaccount'), 18 path('admin/', admin.site.urls), 19]

login/views.py

login/templates/login.html

試したこと

  • ALLOWED_HOSTS = ["*"]
  • nginx.conf のproxy_pass にある"_"を取り除く(ecap_django => ecap)
  • env.prod の DJANGO_ALLOWED_HOSTS にmystreamのサーバーネーム, ecapを追加

補足情報(FW/ツールのバージョンなど)

Docker: 3.8
Database: postgres:13.0-alpine
Nginx: 1.26.1
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

原因が別の箇所にありました。login.html上に記述ミスがあり、該当するページを表示できずにいました。

投稿2022/10/17 07:22

NiTa

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問