{"id":16065,"date":"2024-03-15T12:13:46","date_gmt":"2024-03-15T12:13:46","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/"},"modified":"2025-08-06T23:53:48","modified_gmt":"2025-08-06T23:53:48","slug":"how-does-django-determine-the-source-of-the-request","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/","title":{"rendered":"How does Django determine the source of the request?"},"content":{"rendered":"<p>Django can determine the source of a request by using the attributes of the request object. Here are some commonly used attributes:<\/p>\n<ol>\n<li>The request.META.get(&#8216;HTTP_REFERER&#8217;) method returns a string containing the source page where the user clicked the link to access the current page. If the user directly visits the current page or enters it through bookmarks, browser history, etc., the value of this property will be an empty string.<\/li>\n<li>request.get_host(): returns a string containing the hostname of the current request. For example, if the user is accessing http:\/\/example.com\/mypage, the value of this attribute will be example.com.<\/li>\n<li>request.META.get(&#8216;REMOTE_ADDR&#8217;): returns the user&#8217;s IP address.<\/li>\n<li>request.META.get(&#8216;HTTP_USER_AGENT&#8217;): Returns a string containing the user&#8217;s browser agent.<\/li>\n<\/ol>\n<p>Based on the values of these attributes, you can determine the source of access, such as:<\/p>\n<pre class=\"post-pre\"><code class=\"lang-python\">def my_view(request):\r\n    referer = request.META.get('HTTP_REFERER')\r\n    host = request.get_host()\r\n    remote_addr = request.META.get('REMOTE_ADDR')\r\n    user_agent = request.META.get('HTTP_USER_AGENT')\r\n\r\n    # \u5224\u65ad\u662f\u5426\u4e3a\u76f4\u63a5\u8bbf\u95ee\r\n    if referer == '':\r\n        # \u5904\u7406\u76f4\u63a5\u8bbf\u95ee\u7684\u60c5\u51b5\r\n        pass\r\n\r\n    # \u5224\u65ad\u662f\u5426\u4e3a\u5916\u90e8\u94fe\u63a5\r\n    if 'example.com' not in referer and host != 'example.com':\r\n        # \u5904\u7406\u5916\u90e8\u94fe\u63a5\u7684\u60c5\u51b5\r\n        pass\r\n\r\n    # \u5224\u65ad\u662f\u5426\u4e3a\u7279\u5b9aIP\u5730\u5740\r\n    if remote_addr == '127.0.0.1':\r\n        # \u5904\u7406\u7279\u5b9aIP\u5730\u5740\u7684\u60c5\u51b5\r\n        pass\r\n\r\n    # \u5224\u65ad\u7528\u6237\u7684\u6d4f\u89c8\u5668\u7c7b\u578b\r\n    if 'Mozilla' in user_agent:\r\n        # \u5904\u7406Mozilla\u6d4f\u89c8\u5668\u7684\u60c5\u51b5\r\n        pass\r\n\r\n    # \u5176\u4ed6\u5224\u65ad\u903b\u8f91...\r\n<\/code><\/pre>\n<p>Please note that request.META is a dictionary containing all the metadata for the HTTP request. You can refer to the Django official documentation for more information on the request object and the META attribute.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Django can determine the source of a request by using the attributes of the request object. Here are some commonly used attributes: The request.META.get(&#8216;HTTP_REFERER&#8217;) method returns a string containing the source page where the user clicked the link to access the current page. If the user directly visits the current page or enters it through [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[453,1402,299,1404,1403],"class_list":["post-16065","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-development","tag-guide","tag-programming","tag-technology","tag-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How does Django determine the source of the request? - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn about how does django determine the source of the request?. Comprehensive guide with examples and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How does Django determine the source of the request?\" \/>\n<meta property=\"og:description\" content=\"Learn about how does django determine the source of the request?. Comprehensive guide with examples and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T12:13:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T23:53:48+00:00\" \/>\n<meta name=\"author\" content=\"Sophia Anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/\"},\"author\":{\"name\":\"Sophia Anderson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\"},\"headline\":\"How does Django determine the source of the request?\",\"datePublished\":\"2024-03-15T12:13:46+00:00\",\"dateModified\":\"2025-08-06T23:53:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/\"},\"wordCount\":192,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Development\",\"guide\",\"programming\",\"technology\",\"tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/\",\"name\":\"How does Django determine the source of the request? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T12:13:46+00:00\",\"dateModified\":\"2025-08-06T23:53:48+00:00\",\"description\":\"Learn about how does django determine the source of the request?. Comprehensive guide with examples and best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How does Django determine the source of the request?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\",\"name\":\"Sophia Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"caption\":\"Sophia Anderson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How does Django determine the source of the request? - Blog - Silicon Cloud","description":"Learn about how does django determine the source of the request?. Comprehensive guide with examples and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/","og_locale":"en_US","og_type":"article","og_title":"How does Django determine the source of the request?","og_description":"Learn about how does django determine the source of the request?. Comprehensive guide with examples and best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T12:13:46+00:00","article_modified_time":"2025-08-06T23:53:48+00:00","author":"Sophia Anderson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Sophia Anderson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/"},"author":{"name":"Sophia Anderson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30"},"headline":"How does Django determine the source of the request?","datePublished":"2024-03-15T12:13:46+00:00","dateModified":"2025-08-06T23:53:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/"},"wordCount":192,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Development","guide","programming","technology","tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/","url":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/","name":"How does Django determine the source of the request? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T12:13:46+00:00","dateModified":"2025-08-06T23:53:48+00:00","description":"Learn about how does django determine the source of the request?. Comprehensive guide with examples and best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-does-django-determine-the-source-of-the-request\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How does Django determine the source of the request?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30","name":"Sophia Anderson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","caption":"Sophia Anderson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=16065"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16065\/revisions"}],"predecessor-version":[{"id":49614,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16065\/revisions\/49614"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=16065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=16065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=16065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}