Django を使用して Web サイトを開発すると、URL 一致ルール (正規表現を含む) がより適切に整理されれば、ビュー構造がより明確になり、保守が容易になります。しかし、いくつかの誤解があるかもしれませんので、以下にまとめてみましょう。それが米国にとって良いことを願っています。
質問:
私が勉強したビデオは、おそらく 2015 年に録画されたものです。そこで使用されている Django のバージョンは比較的古いものです。正規表現 URL には、URL ("url(r'^admin/', admin.site. .urls)、") メソッド。私自身が練習しているときに最新バージョンをダウンロードしたところ、正規表現 URL は正確なパス ("path('admin/', admin.site.urls),") メソッドを使用していました。最初はペアリングしたら成功したので、あまり細かいことは気にしていませんでした。
後で複数の通常の一致が一致するまで (path('detail-(d+).html', views.detail),)、「ページが見つかりません」というエラーが常に報告されます。何度も確認しましたが、明らかに同じです。なぜ動作しないのですか?実際には少し色が違うように感じますが、理由はわかりません。その後、関連するバージョンのドキュメントを確認したところ、ついに解決策が見つかりました。
関連するコードは以下に添付されています:
1. これは最も重要な py ファイルであり、他のファイルもほぼ同じです。
2. その他の関連コード:
views.py
def detail(request,nid): # print(nid) # return HttpResponse(nid) detail_info = USER_DICT[nid] return render(request,'detail.html',{'detail_info':detail_info})
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> {% for k,v in user_dict.items %} <li><a target="_blank" href="/detail-{{ k }}.html" rel="external nofollow" >{{ v.name }}</a></li> {% endfor %} </ul> </body> </html>
detail.py
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>详细信息</h1> <h6>用户名:{{ detail_info.name }}</h6> <h6>邮箱:{{ detail_info.email }}</h6> </body> </html>
さらに、URL が複数のデータを渡す必要がある場合は、厳密に順序どおりに渡す必要があります。 、および関数定義 対応する数のパラメーターが必要です。 もちろん、ユニバーサル パラメーターを使用して、通常の状況で使用される正規表現は次のとおりです。 url(r'^detail-(?P 対応する詳細関数は次のとおりです: defdetail(request, *args, **kwargs):pass 関連する推奨事項: 以上がDjango フレームワークの正規表現 URL に関する誤解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。