Django webフレームワーク---url path name詳細

4064 ワード

quicktool/view.pyファイルビュー関数index()を変更し、home.htmlテンプレートをレンダリング
from django.shortcuts import render
def index(request):
    return render(request, 'home.html')

quicktool(appを適用)でtemplatesフォルダ(テンプレート)を作成し、templatesでhome.htmlを作成します.



      Django



「/add 2/4/5/」>  4+5




mytestsite/urls.pyファイルビュー関数index()に対応するアドレス名nameをホーム(この名前が変わらない限り、URLが変わっても名前で取得できます)
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', quicktool_views.index, name='home'),  #   name 
    path('add/', quicktool_views.add, name='add'),  #   
    path('add2///', quicktool_views.add2, name='add2'),   #   
]

開発サーバの実行、アクセスhttp://127.0.0.1:8000/が表示されます.
ラベルaをクリックするとスクリプト計算が実行されますが、home.htmlのコードaラベルのurlは「書き込みが死んでいる」ので、urlのnameを介して参照することができます.home.htmlは以下のコードを追加します.
#     :
#{% url 'name' %}
#    :        
#{% url 'name'    %}

「/add 2/4/5/」>  4+5
「{%url'add 2'70 80%}」>  70+80   #   

開発サーバの実行、アクセスhttp://127.0.0.1:8000/が表示されます.
最初のaラベルジャンプリクエストのurlをクリックします.http://127.0.0.1:8000/add2/4/5/
2番目のaラベルジャンプリクエストurlをクリックします.http://127.0.0.1:8000/add2/70/80/
2番目のaラベルの書き方はurl name値に基づいてパラメータをジャンプし、mytestsite/urls.pyファイルのurl path()の属性値nameに基づいて一致し、対応するパラメータ値をパスし、「書かない」要求を行う.
url path()の属性値nameを変更せずにurl path()の最初のパスパラメータを変更すると、aラベルで取得したURLも動的に変化します.
たとえば
path('add2///', quicktool_views.add2, name='add2'),  

に改心
path('add2///', quicktool_views.add2, name='add2'),  

それ以外に、新しいアドレスにジャンプする関数を書く必要があります.Djangoはジャンプアドレスを自動的に更新しません.
たとえば、古いアドレス・お気に入りが/add 2/4/5/であると、アクセス時に自動的に新しい/new_にジャンプします.add2/4/5/
具体的には、quicktool/view.pyファイルにジャンプ関数を書きます.
from django.shortcuts import render
from django.http import HttpResponseRedirect
def old_add2_redirect(request, a, b):
    return HttpResponseRedirect(
        reverse('add2', args=(a, b))
    )

mytestsite/urls.pyファイル新規url
path('new_add2///', quicktool_views.add2, name='add2'),  #    
path('add2///', quicktool_views.old_add2_redirect),   #    

アクセスhttp://127.0.0.1:8000/を選択します.
転載先:https://juejin.im/post/5cbeb10cf265da03ae74c378