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

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

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

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

Python

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

Q&A

解決済

3回答

3338閲覧

Python 再帰エラーになる

xx_6_6_xx

総合スコア42

Django

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

Python

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

0グッド

0クリップ

投稿2018/12/20 02:47

編集2018/12/20 03:00

Pythonを実行

views.pyやmodels.py、urls.py、templateなど一通り用意して、
Python manage.py runserver を実行しました。
すると以下のエラーが出てしまいます。。

###対象のコード

【views.py】

Python

1 2def myapp2(request): 3 d = { 4 'ID':'' 5 } 6 param = get_Param(request) 7 d["ID"] = param[0] 8 return render(request,'myapp2/myapp2.html',{"d":d}) 9 10#パラメータ取得 11def get_Param(request): 12 if request.method == 'GET': 13 req = request.GET 14 else: 15 req = request.POST 16 if("Id" in req): 17 ID = req.get("Id") 18 else: 19 ID = "A000001" 20 return ID 21 22def myapp2_data(request): 23 d = { 24 'table':'' 25 } 26 d["table"] = get_User_list('ID') 27 return render(request,'myapp2/myapp2.html',{"d":d}) 28 29#データ取得 30def get_User_list(ID): 31 return User.get_User_list(ID)

【urls.py】

Python

1from django.urls import path 2from . import views 3 4urlpatterns = [ 5 path(r'myapp2/', views.myapp2, name='myapp2'), 6 path(r'templates/', views.myapp2, name='myapp2tmp'), 7]

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

 このエラーが交互に何回も表示されて…

File "C:~省~Python\Python37-32\lib\site-packages\django\urls\resolvers.py", line 397, in check warnings.extend(check_resolver(pattern)) File "C:~省~Python\Python37-32\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver

 その後このエラーが1行だけ表示され…

\resolvers.py",line 123, in _check_pattern_startswith_slash if regex_pattern.startswith(('/', '^/', '^\/')) and not regex_pattern.endswith('/'):

 最後に、再帰エラー?となって処理終了されます。。。

RecursionError: maximum recursion depth exceeded while calling a Python object

試したこと

再帰上限数の変更?をすると解消されるかな…と思い、
以下をviews.pyに追加しました

import sys sys.setrecursionlimit(2000)

ですが解消されませんでした。

原因は自分で作っている、
mysite/urls.pyの中身のような気もしています。。。

単純なミスが多すぎ

いつも初歩的かつ単純なミスが多いのですが、
どなたかご教示頂けますでしょうか、、、
宜しくお願い致します。。。

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

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

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

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

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

gh640

2018/12/20 15:31

ご認識のとおり、おそらく原因は `urls.py` の書き方だと思います。 ただ、ご提示されている情報だけでは何とも言えないので、 1) Django と Python のバージョン、 2) すべての `urls.py` のコード、 3) もう少し具体的な発生手順( `runserver` を実行しただけで発生しましたか?それとも `runserver` を実行してブラウザで特定のパスにアクセスしたときに発生しましたか?)、 4) もし pip でインストールされたパッケージが影響している可能性があるのであればパッケージ一覧(≒ `settings.py` の一部)、等をご提示になると、より具体的な回答がもらえやすくなるかと思います。
guest

回答3

0

中身色々確認したのですが、あっちこっち雑に書きすぎてぐちゃぐちゃになってしまったので、一旦新規で作成しなおしてみます、、、皆様ご回答、アドバイス頂きありがとうございます;;申し訳ありません;;

投稿2018/12/20 23:37

xx_6_6_xx

総合スコア42

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

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

0

ベストアンサー

すみません、どこで再起処理をしているのかを書いて頂いた方が指摘し易いのですが

python

1#データ取得 2def get_User_list(ID): 3 return User.get_User_list(ID)

ここで再起処理が起こっていらしゃるのでしたら、エラーになりますよ。

発生しているエラーを翻訳すると、「Pythonオブジェクトの呼び出し中に最大再帰深度を超過しました」というエラーメッセージになります。

投稿2018/12/20 03:19

stdio

総合スコア3307

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

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

0

大変申し訳ございません。
再帰エラー等の場合は、上限数の変更等はもちろんの事、再起処理を実行する前にreturn等の分が入っているかなど様々な不具合が考えられますので、具体的にどこが間違っているかを指摘するためには、再起処理を行っているプログラムを公開して頂く必要がございます。
ご了承ください。

投稿2018/12/20 02:54

stdio

総合スコア3307

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

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

xx_6_6_xx

2018/12/20 03:01

ご指摘ありがとうございます!! 質問文章に追記しました。;;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問