ryotankの備考録日記

趣味の電子工作についての備考録などなど

基板設計記録WEBアプリその14

SyntaxError: unexpected EOF whlie parsingというエラーメッセージが
出た

f:id:ryotank:20220303111538p:plain
urlとviewを修正しマイグレーションファイルの生成を行った画面

多くは関数やメソッドの括弧を閉じ忘れていると発生するエラーメッセージ

該当するファイル名は

#PDRのurls.py
#HTTPリクエストから送られたURLにマッチするパスを探す
#マッチするパスを探す時はプロジェクトフォルダのurls.pyを上から順番に探していく
#2022-3-3作成


from django.urls import path
from . import views


urlpatterns = [
    path(' ', views.Pdr_dataList.as_view(), name='Pdr_data'),
    path('<int:pk>/', views.Pdr_dataDetail.as_view(), name='detail'),
    path('create/', views.Pdr_dataCreate.as_view(), name= 'create'),  #この行のコードが原因

見れば分かるが、
コードの最後に'](角括弧)'で閉じられていないのが目立った。
あたかもこの後もコードが続くようになっている

エラーを解消したコードを以下のように示す

urlpatterns = [
    path(' ', views.Pdr_dataList.as_view(), name='Pdr_data'),
    path('<int:pk>/', views.Pdr_dataDetail.as_view(), name='detail'),
    path('create/', views.Pdr_dataCreate.as_view(), name= 'create'), 
]


コードが正しく書かれている場合では、
次のような流れでコードが走る

1.Pythonプログラムがコードを解釈する
2.urlpatterns関数を見つける
3.関数の引数のpathを上から順番に実行していく
4.pathで用意された'create'を見つけて開こうとする

f:id:ryotank:20220303115718p:plain
正しいコードを実行する例

コードに文法ミスがあった場合だと・・・

f:id:ryotank:20220303115753p:plain
文法ミスがあったコードを実行する例

SyntaxErrorは、この段階で発生するエラー

Pythonは、'はじめ括弧('を見つけたら、それに対応する
閉じ括弧を探す


これがSyntaxError: unexpected EOF whlie parsingという
エラーメッセージが発生する仕組み

もし、閉じ括弧が不足している処理の後に
他の処理がある場合は、別のエラーメッセージSyntaxError: invalid syntaxが
発生する。

次回は、再度マイグレーションファイルの生成を実行して、
無事にPDRアプリケーションフォルダ内に
migrationsフォルダが作成されるかを見る