🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

3回答

5414閲覧

django(python)で、変数の中身を確認する方法が知りたい(デバッグ方法)

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/12/21 07:47

わからないこと

Django でフォームで送られてきた値を変数に代入しているのですが、Django 初学者のため正しく値が送られてきているのか確認したいのですが、どのようにすれば良いでしょうか??

普段はPHP(Laravel)を主に使っているのですが、PHP(Laravel)だとコントローラー側で

public function hoge(Request $request) { // ddを使うか dd($request); // var_dump()、exit() を使う var_dump($request); exit(); }

このようにすれば、ブラウザ(Web画面上)で変数の中身が確認できると思うのですが、Django(Python)でこのように、変数の中身を確認する際はどのようにすれば良いでしょうか??

試したこと

print() を試してみたが、これでは表示されず
できれば変数の中身を確認したところで、プログラムの処理を止めたいので、 exit() を書いてみましたが、止まらず。。。。
調べたところ sys.exit() をやると、プログラムを止められる?らしいですが、うまくいきませんでした。。

どなたかご教示いただければ幸いです。
お願い致します。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/12/22 02:14 編集

普段pythonもdjangoも使わないので回答はできません。 デバッグするならおよそ以下の4つくらいだと思います。 (1) VS code, PyCharm, eclipse, ...などのIDEを使用してデバッグする (2) django debug toolbarをアプリに組み込んで使用する (3) print文やloggerなどを入れて開発サーバの出力やログなどで確認する (4) レスポンスhtmlをわざわざ作成して確認する ご所望が(4)のようなので説明すると、例えばviews.pyで def hoge(request): return HttpResponse(escape(str(request.POST))) とすればフォームから入力された値をブラウザで見ることが出来ると思います。 また、raise Exceptionとかすれば自動的にエラー画面になるので、そこでローカル変数などを見ることができます。 ただし、いずれも本来のPOST処理はできなくなります。 (2)についてはやったことがないので、可能かどうかはご自身でご確認ください。 個人的にはある程度以上の規模のものをIDEなしで開発したくないので、(1)がオススメです。
退会済みユーザー

退会済みユーザー

2019/12/22 05:43

ありがとうございます! 試してみます!
guest

回答3

0

djangoにはpythonビルトインのloggingモジュールもあります。

https://docs.djangoproject.com/ja/2.0/topics/logging/

投稿2019/12/21 09:10

編集2019/12/21 10:15
madone99

総合スコア1857

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

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

退会済みユーザー

退会済みユーザー

2019/12/22 05:43

ありがとうございます! なんか色々方法があるみたいなのですね!
退会済みユーザー

退会済みユーザー

2019/12/22 07:31

うーん、こちらの使い方がよくわからないのですが。。。 settings.py に `LOGGING` の設定を書いて、 `import` して使う?という流れだと思うのですが、うまく行かず・・ あと、この `logging` を使うとどこに出力されて、どこで確認できるのでしょうか?? すみません、ご教示頂けたら幸いです お願い致します
tatamyiwathy

2019/12/23 01:51

どこに出力するかを設定します。コンソールでもファイルでも出力できますよ。
guest

0

組み込み関数 breakpoint() と標準ライブラリ pdb を使ってみてください。

投稿2019/12/21 07:59

nico25

総合スコア830

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

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

退会済みユーザー

退会済みユーザー

2019/12/22 05:44

python で使える?ということですかね?(この記事だと flask で使っている?のかなと思いました。) ありがとうございます! ちょっとやってみます!
guest

0

Djangoだと views.py で値を受け取って中身を見たい、ということでしょうか?

Python

1 def get(self, request, *args, **kwargs): 2 print(request.POST.get("hogehoge"))
<input type="text" name="hogehoge">

↑みたいなテキストボックスを送信したときは views.pyで 上記コードのように書けば値が取れると思いますが現在どこまでできているのでしょうか?

投稿2019/12/23 01:58

azuapricot

総合スコア2341

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

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

退会済みユーザー

退会済みユーザー

2019/12/24 01:45

そうです。 views.py で受け取った値の中身をみたいです。 ``` def get(self, request, *args, **kwargs): print(request.POST.get("hogehoge")) ``` こちらで中身が確認できた際、確認している箇所でプログラムを止めることは可能でしょうか? print の下で exit などで処理を止めて確認したいと言うことになりますが、exit しても処理が止まらないので困っています。
azuapricot

2019/12/24 01:51

そもそもエディターは何で開発しているのでしょうか? Pycharmならデバッグ機能がありますしそれを使えばよいかと思うのですが...
退会済みユーザー

退会済みユーザー

2019/12/24 04:02

エディターは sublime text3 を使っています!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問