{"id":959,"date":"2019-05-01T21:43:02","date_gmt":"2019-05-01T12:43:02","guid":{"rendered":"https:\/\/www.nblog09.com\/w\/?p=959"},"modified":"2021-11-11T17:39:35","modified_gmt":"2021-11-11T08:39:35","slug":"django-redirect","status":"publish","type":"post","link":"https:\/\/www.nblog09.com\/w\/2019\/05\/01\/django-redirect\/","title":{"rendered":"Django\u3067\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u307e\u3068\u3081\u307e\u3057\u305f\uff08redirect, HttpResponseRedirect, reverse\uff09"},"content":{"rendered":"<p>[rtoc_mokuji title=\"\" title_display=\"\" heading=\"h3\" list_h2_type=\"\" list_h3_type=\"\" display=\"\" frame_design=\"\" animation=\"\"]<\/p>\n<h2 class=\"title-border\"><strong><br \/>\nredirect\u95a2\u6570(django.shortcuts.redirect)\u3092\u7528\u3044\u305f\u30ea\u30c0\u30a4\u30ec\u30af\u30c8<br \/>\n<\/strong><\/h2>\n<p>django.shortcuts.redirect\u3092\u7528\u3044\u3066\u3001\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<br \/>\n\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a18\u8ff0\u3059\u308b\u3002<\/p>\n<div class=\"interview-aite\">\ndef redirect_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;response = <span class=\"red_span\">redirect('\/redirect_success\/')<\/span> <strong># https:\/\/\u81ea\u8eab\u306e\u30b5\u30a4\u30c8\u306e\u30db\u30b9\u30c8\/redirect_success\/\u306b\u9077\u79fb<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(type(response)) <strong># class 'django.http.response.HttpResponseRedirect'<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return response\n<\/div>\n<p>\u4e0a\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3059\u308b\u3068redirect_view\u5b9f\u884c\u6642\u306b\u3001\u7acb\u3061\u4e0a\u3052\u3066\u3044\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\/redirect_success\/\u30da\u30fc\u30b8\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/p>\n<p>\u5b9f\u969b\u306b\u306f\u4ee5\u4e0b\u306e\u4f8b\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3059\u308c\u3070\u3088\u3044\u3002<br \/>\n\uff08URL\u30de\u30c3\u30d4\u30f3\u30b0\u306b\u3064\u3044\u3066\u306f<a href=\"https:\/\/www.nblog09.com\/w\/2019\/01\/20\/django-mapping\/\">\u3053\u3061\u3089<\/a>\u3092\u53c2\u7167\uff09<\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eurls.py(URL\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5b9a\u7fa9)<\/li>\n<\/ul>\n<div class=\"programming-inside\">\nfrom django.contrib import admin<br \/>\nfrom django.urls import path<br \/>\nfrom django.conf.urls import include<\/p>\n<p>urlpatterns = [<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;path('admin\/', admin.site.urls),<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;path('app\/', include('app.urls')), <strong># \/app\/\u3067app.urls\u306b\u9077\u79fb<\/strong><br \/>\n]<\/p>\n<\/div>\n<ul>\n<li>\u30a2\u30d7\u30ea\u306eurls.py(URL\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5b9a\u7fa9)<\/li>\n<\/ul>\n<div class=\"programming-inside\">\nfrom django.urls import path<br \/>\nfrom app import views<\/p>\n<p>app_name = 'app'<\/p>\n<p>urlpatterns = [<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;path('redirect_view', views.redirect_view, name='redirect_view'), <strong># \/app\/redirect_view\u306e\u9077\u79fb\u753b\u9762<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;path('redirect_success', views.redirect_success, name='redirect_success'),  <strong># \/app\/redirect_success\u306e\u9077\u79fb\u753b\u9762<\/strong><br \/>\n]<\/p>\n<\/div>\n<ul>\n<li>View\u306e\u5b9a\u7fa9<\/li>\n<\/ul>\n<div class=\"programming-inside\">\n<p>from django.shortcuts import redirect<br \/>\nfrom django.http import HttpResponse<\/p>\n<p>def redirect_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;response = redirect('\/app\/redirect_success') <strong># \/app\/redirect_view\u306b\u9077\u79fb\u3055\u305b\u308b<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(type(response)) <strong># class 'django.http.response.HttpResponseRedirect'<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return response<\/p>\n<p>def redirect_success(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return HttpResponse(\"\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u6210\u529f\")<\/p>\n<\/div>\n<p>\u3053\u306e\u3088\u3046\u306b\u3059\u308b\u3068\u3001http:\/\/\u25cb\u25cb\u25cb.\u00d7\u00d7\u00d7\/app\/redirect_view\u3092\u958b\u3044\u305f\u5834\u5408\u306bhttp:\/\/\u25cb\u25cb\u25cb.\u00d7\u00d7\u00d7\/app\/redirect_success\u306b\u9077\u79fb\u3055\u308c\u308b\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/05\/\u7121\u984c-3.png\" alt=\"\" width=\"700\" height=\"388\" class=\"alignnone size-full wp-image-3406\" \/><br \/>\n\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306bHTTP\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9302(\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u8868\u3059)\u306e\u30ed\u30b0\u304c\u51fa\u529b\u3055\u308c\u308b\u3002<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/05\/\u7121\u984c-4.png\" alt=\"\" width=\"700\" height=\"45\" class=\"alignnone size-full wp-image-3407\" srcset=\"https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/05\/\u7121\u984c-4.png 900w, https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/05\/\u7121\u984c-4-300x19.png 300w, https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/05\/\u7121\u984c-4-768x49.png 768w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>\u3061\u306a\u307f\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a18\u8ff0\u3057\u3066\u3082\u540c\u69d8\u306b\u9077\u79fb\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/p>\n<ul>\n<li>View\u306e\u5b9a\u7fa9\u305d\u306e\uff12<\/li>\n<\/ul>\n<div class=\"programming-inside\">\n<p>from django.shortcuts import redirect<br \/>\nfrom django.http import HttpResponse<\/p>\n<p>def redirect_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;response = redirect('app:redirect_success') <strong># \u81ea\u52d5\u3067\u3001\/app\/redirect_view\u3068\u89e3\u91c8\u3055\u308c\u9077\u79fb\u3055\u305b\u308b<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(type(response)) <strong># class 'django.http.response.HttpResponseRedirect'<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return response<\/p>\n<p>def redirect_success(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return HttpResponse(\"\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u6210\u529f\")<\/p>\n<\/div>\n<\/div>\n<p>\u307e\u305f\u3001\u81ea\u8eab\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5225\u306eView\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3059\u308b\u306e\u3067\u306a\u304f\u3066\u3001\u4ed6\u30b5\u30a4\u30c8\u306b\u9077\u79fb\u3055\u305b\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u3002<\/p>\n<p>\u4f8b\u3048\u3070\u4e0b\u306e\u3088\u3046\u306b\u3059\u308b\u3068Google\u306b\u9077\u79fb\u3055\u305b\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u3002<\/p>\n<div class=\"interview-aite\">\ndef redirect_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;response = <span class=\"red_span\">redirect('https:\/\/google.com')<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return response\n<\/div>\n<h2 class=\"title-border\"><strong><br \/>\nHttpResopseRedirect\u3092\u5229\u7528\u3057\u305f\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u65b9\u6cd5<br \/>\n<\/strong><\/h2>\n<p>\u3053\u308c\u307e\u3067\u3001redirect\u95a2\u6570\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5148\u306e\u5f15\u6570\u3092\u4e0e\u3048\u3066\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u884c\u3063\u3066\u304d\u305f\u3002<\/p>\n<p>redirect\u95a2\u6570\u3092\u7528\u3044\u308b\u3068\u3001\u8fd4\u308a\u5024\u3068\u3057\u3066django.http.response.HttpResponseRedirect\u304c\u8fd4\u3055\u308c\u308b\u3002<\/p>\n<p><span class=\"pink_span\">\u3053\u306edjango.http.HttpResponseRedirect\u3092\u76f4\u63a5\u5229\u7528\u3057\u3066\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u3002<\/span><\/p>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u8a18\u8ff0\u3059\u308b\u3002<\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092view\u306b\u8a18\u8ff0(URL\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306f\u7701\u7565)<\/li>\n<\/ul>\n<div class=\"programming-inside\">\nfrom django.http import HttpResponseRedirect<br \/>\nfrom django.urls import reverse<\/p>\n<p>def redirect_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return HttpResponseRedirect('\/app\/redirect_success') <strong>\u3053\u306e\u3088\u3046\u306b\u3059\u308b\u3068redirect_view\u304b\u3089\/app\/redirect_success\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3055\u308c\u308b<\/strong>\n<\/div>\n<\/div>\n<p>\u307e\u305f\u3001<span class=\"pink_span\">reverse\u95a2\u6570(django.urls.reverse)\u3092\u7528\u3044\u308b\u3068\u95a2\u6570\u540d\u304b\u3089URL\u3092\u9006\u5f15\u304d\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u3002<\/span><\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>reverse\u3092\u7528\u3044\u305f\u30ea\u30c0\u30a4\u30ec\u30af\u30c8(HttpResponseRedirect)<\/li>\n<\/ul>\n<div class=\"programming-inside\">\ndef redirect_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;print(reverse('app:redirect_success')) <strong># \/app\/redirect_success(URL\u3092\u9006\u5f15\u304d)<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return HttpResponseRedirect(reverse('app:redirect_success')) <strong># \/app\/redirect_success\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8<\/strong>\n<\/div>\n<\/div>\n<div class=\"customized-adsense\"><\/div>\n<h2 class=\"title-border\"><strong><br \/>\n\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3067\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6e21\u3059<br \/>\n<\/strong><\/h2>\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6e21\u3057\u3066\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u3059\u308b\u306b\u306f\u3001redirect\u95a2\u6570\u3067\u3001\u7b2c2, \u7b2c3\u5f15\u6570\u306b\u5024\u3092\u6307\u5b9a\u3059\u308c\u3070\u3088\u3044\u3002<\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>urls.py\u306e\u8a18\u8ff0\u5185\u5bb9<\/li>\n<\/ul>\n<div class=\"programming-inside\">\npath('\/product\/<id>\/', 'product', name='product') <strong># \/product\/<id>\/\u3067\u9077\u79fb\u3059\u308b\u5b9a\u7fa9<\/strong>\n<\/div>\n<ul>\n<li>views.py\u306e\u8a18\u8ff0\u5185\u5bb9\uff11<\/li>\n<\/ul>\n<div class=\"programming-inside\">\ndef redirect_viw(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;id = 1<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return redirect('product', id=id) <strong># \u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5bfe\u8c61\u306eview\u3092\u6e21\u3059ID\u3092\u6307\u5b9a\u3059\u308b<\/strong>\n<\/div>\n<p>\u307e\u305f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u3082\u540c\u69d8\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/p>\n<ul>\n<li>views.py\u306e\u8a18\u8ff0\u5185\u5bb9\uff12<\/li>\n<\/ul>\n<div class=\"programming-inside\">\ndef redirect_viw(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;id = 1<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return redirect(f'\/product\/<id>') <strong># URL\u306b\u5909\u6570\u3092\u57cb\u3081\u8fbc\u3080<\/strong>\n<\/div>\n<\/div>\n<p>\u307e\u305f\u3001?id=\u25cb\u25cb&name=\u00d7\u00d7<br \/>\n\u306e\u3088\u3046\u306b\u5024\u3092\u6e21\u3057\u3066\u753b\u9762\u9077\u79fb\u3059\u308b\u5834\u5408\u3082\u3042\u308b\u3002<br \/>\n\u3053\u306e\u5834\u5408\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306burlencode(urllib.parse.urlencode)\u3092\u5229\u7528\u3059\u308c\u3070\u3088\u3044<\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>views.py\u306e\u8a18\u8ff0\u5185\u5bb9<\/li>\n<\/ul>\n<div class=\"programming-inside\">\nfrom django.urls import reverse<br \/>\nfrom urllib.parse import urlencode<\/p>\n<p>def some_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;id=1, category_id=2<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;query_string =  urlencode({'id': id, 'category_id': category_id}) <strong># id=1&category_id=2<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;url = f'\/product_view\/?{query_string}' <strong># \/products?id=1&category_id=2<\/strong><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return redirect(url)<\/p>\n<p>def product_view(request):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;category_id = request.GET.get('category_id') <strong># category_id\u3092\u30ea\u30af\u30a8\u30b9\u30c8\u304b\u3089\u53d6\u5f97<\/strong>\n<\/div>\n<\/div>\n<div class=\"customized-adsense\"><\/div>\n<p>\u4ee5\u4e0a\u3001\u57fa\u672c\u7684\u306a\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u306e\u65b9\u6cd5\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002<\/p>\n<div class=\"django-adsense\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>[rtoc_mokuji title=\"\" title_display=\"\" heading=\"h3\" list_h2_type=\"\" list_h3_type=\"\" display=\"\" frame_design=\"\" [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":369,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_uag_custom_page_level_css":"","_uf_show_specific_survey":0,"_uf_disable_surveys":false,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[121,219],"tags":[14,159],"class_list":{"0":"post-959","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-django","8":"category-it-programming","9":"tag-python","10":"tag-redirect","11":"entry"},"uagb_featured_image_src":{"full":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",724,480,false],"thumbnail":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480-150x150.jpg",150,150,true],"medium":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480-300x199.jpg",300,199,true],"medium_large":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",724,480,false],"large":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",724,480,false],"1536x1536":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",724,480,false],"2048x2048":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",724,480,false],"home-middle":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",528,350,false],"home-top":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",634,420,false],"sidebar-thumbnail":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/krasnal-962528__480.jpg",100,66,false]},"uagb_author_info":{"display_name":"9nmatsumoto","author_link":"https:\/\/www.nblog09.com\/w\/author\/9nmatsumoto\/"},"uagb_comment_info":154,"uagb_excerpt":"[rtoc_mokuji title=\"\" title_display=\"\" heading=\"h3\" lis&hellip;","_links":{"self":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts\/959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/comments?post=959"}],"version-history":[{"count":20,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts\/959\/revisions"}],"predecessor-version":[{"id":3798,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts\/959\/revisions\/3798"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/media\/369"}],"wp:attachment":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/media?parent=959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/categories?post=959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/tags?post=959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}