ホームページ >バックエンド開発 >PHPチュートリアル >Django フレームワークの正規表現 URL に関する誤解

Django フレームワークの正規表現 URL に関する誤解

小云云
小云云オリジナル
2018-01-29 09:38:321887ブラウズ

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フレームワークをベースにしたWebサイト 導入の詳しい説明

以上がDjango フレームワークの正規表現 URL に関する誤解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。