{"id":144,"date":"2025-04-18T11:17:52","date_gmt":"2025-04-18T11:17:52","guid":{"rendered":"https:\/\/kingstatue.com\/?p=144"},"modified":"2025-04-18T11:17:52","modified_gmt":"2025-04-18T11:17:52","slug":"how-url-dispatching-works-in-django-project","status":"publish","type":"post","link":"https:\/\/www.kingstatue.com\/?p=144","title":{"rendered":"How URL dispatching works in Django project?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In a Django project, <strong>URL dispatching<\/strong> is the process of mapping URLs to corresponding <strong>views<\/strong>. When a user sends a request to a Django application, Django uses a URL dispatcher to determine which <strong>view function<\/strong> or <strong>class-based view<\/strong> should handle the request based on the URL pattern.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How it Works \u2013 Step by Step:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>User sends a request<\/strong> (e.g., <code>https:\/\/example.com\/about\/<\/code>)<\/li>\n\n\n\n<li>Django checks the <code>urlpatterns<\/code> defined in the main <code>urls.py<\/code> file (usually inside the project folder).<\/li>\n\n\n\n<li>If matched, it dispatches the request to the corresponding view function.<\/li>\n\n\n\n<li>The view function processes the request and returns an HTTP response.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Let us create a django  project myproject or testproject or myshop <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a directory myshop<\/li>\n\n\n\n<li>In the windows command prompt in C or D drive enter mkdir myshop<\/li>\n\n\n\n<li>cd myshop<\/li>\n\n\n\n<li>Create a virtual envirnment<\/li>\n\n\n\n<li><strong>python -m venv myshop_env<\/strong><\/li>\n\n\n\n<li>Activate virtual environment<\/li>\n\n\n\n<li>myshop\\scripts\\activate<\/li>\n\n\n\n<li>After activating a virtual environment install Django<\/li>\n\n\n\n<li><strong>pip install django<\/strong><\/li>\n\n\n\n<li>Now create a django project<\/li>\n\n\n\n<li>I use the project name core (you can use myshop or any other name)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create a django project using the command:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>django startproject core <\/strong>. (type dot at the end)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following directory structure is created<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>myshop\/\n\u2502\u2500\u2500 manage.py\n\u2502\u2500\u2500 core\/  # Main project package\n\u2502   \u2502\u2500\u2500 __init__.py\n\u2502   \u2502\u2500\u2500 settings.py\n\u2502   \u2502\u2500\u2500 urls.py\n\u2502   \u2502\u2500\u2500 asgi.py\n\u2502   \u2514\u2500\u2500 wsgi.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. manage.py<\/strong><br><br>A command-line tool to run the Django project.<br><br>Used for running the server, creating apps, applying migrations, managing users, etc.<br><br>Example commands:<br><br>python manage.py runserver   # Start the development server<br>python manage.py makemigrations   # Create migration files<br>python manage.py migrate   # Apply migrations to the database<br>python manage.py createsuperuser  # Create an admin user<br><br><strong>2. myshop\/ (Main Project Folder)<\/strong><br><br>a) __init__.py<br><br>An empty file that tells Python to treat this directory as a package.<br><br><em>A <strong>module<\/strong> is simply a <strong>Python file (<\/strong><span style=\"background-color: rgba(0, 0, 0, 0.2); font-family: inherit; font-size: inherit; text-align: initial; font-weight: 600; color: initial;\">.py<\/span><strong>)<\/strong> that contains <strong>functions, classes, or variables<\/strong>. It allows code to be logically organized.<br>A <strong>package<\/strong> is a <strong>directory that contains a collection of modules and a special file named <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">__init__.py<\/span><\/strong> (can be empty). It allows you to organize related modules together.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>b) settings.py<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Main configuration file for the Django project.<\/li>\n\n\n\n<li>Contains settings for:\n<ul class=\"wp-block-list\">\n<li><strong>Database Configuration<\/strong> (DATABASES)<\/li>\n\n\n\n<li><strong>Installed Apps<\/strong> (INSTALLED_APPS)<\/li>\n\n\n\n<li><strong>Middleware<\/strong> (MIDDLEWARE)<\/li>\n\n\n\n<li><strong>Templates Configuration<\/strong> (TEMPLATES)<\/li>\n\n\n\n<li><strong>Static and Media Files<\/strong> (STATIC_URL, MEDIA_URL)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>INSTALLED_APPS = &#91;\n    'django.contrib.admin',\n    'django.contrib.auth',\n    'django.contrib.contenttypes',\n    'django.contrib.sessions',\n    'django.contrib.messages',\n    'django.contrib.staticfiles',   \n]\n\nMIDDLEWARE = &#91;\n    'django.middleware.security.SecurityMiddleware',\n    'django.contrib.sessions.middleware.SessionMiddleware',\n    'django.middleware.common.CommonMiddleware',\n    'django.middleware.csrf.CsrfViewMiddleware',\n    'django.contrib.auth.middleware.AuthenticationMiddleware',\n    'django.contrib.messages.middleware.MessageMiddleware',\n    'django.middleware.clickjacking.XFrameOptionsMiddleware',\n]\n\nROOT_URLCONF = 'core.urls'\n\nTEMPLATES = &#91;\n    {\n        'BACKEND': 'django.template.backends.django.DjangoTemplates',        \n        <strong>'DIRS': <\/strong>\n        'APP_DIRS': True,\n        'OPTIONS': {\n            'context_processors': &#91;\n                'django.template.context_processors.request',\n                'django.contrib.auth.context_processors.auth',\n                'django.contrib.messages.context_processors.messages',\n            ],\n        },\n    },\n]\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In the TEMPLATES add a value for the dictionary key &#8216;DIRS:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>TEMPLATES = &#91;\n    {\n        'BACKEND': 'django.template.backends.django.DjangoTemplates',        \n        <strong>'DIRS': &#91;BASE_DIR\/'templates'], #Added by VBhat on 15\/04\/2025<\/strong>\n        'APP_DIRS': True,\n        'OPTIONS': {\n            'context_processors': &#91;\n                'django.template.context_processors.request',\n                'django.contrib.auth.context_processors.auth',\n                'django.contrib.messages.context_processors.messages',\n            ],\n        },\n    },\n]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create a folder templates (to store html files) under myshop folder<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now the directory structure is as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>myshop\/\n\u2502\u2500\u2500 manage.py\n\u2502\u2500\u2500 templates (Django template files, html files are stored in this directory)\n\u2502\u2500\u2500 core\/ # Main project package\n\u2502 \u2502\u2500\u2500 __init__.py\n\u2502 \u2502\u2500\u2500 settings.py\n\u2502 \u2502\u2500\u2500 urls.py\n\u2502 \u2502\u2500\u2500 asgi.py\n\u2502 \u2514\u2500\u2500 wsgi.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>c) urls.py<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Defines URL routing patterns for the project.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.contrib import admin\nfrom django.urls import path\nurlpatterns = &#91;\n    path('admin\/', admin.site.urls),]\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>d) asgi.py &amp; wsgi.py<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>wsgi.py<\/strong>: Entry point for WSGI applications. Used for deploying Django projects on production servers. (WSGI servers e.g., Gunicorn, uWSGI))<\/li>\n\n\n\n<li><strong>asgi.py<\/strong>: Entry point for ASGI applications for async operations (WebSockets, real-time applications)..<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Now create a Django application using the following command:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>python manage.py startapp testapp<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The directory structure is updated as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>myshop\/\n\u2502\u2500\u2500 manage.py\n\u2502\u2500\u2500 templates (Django template files, html files are stored in this directory)\n\u2502\u2500\u2500 core\/  # Main project package\n\u2502   \u2502\u2500\u2500 __init__.py\n\u2502   \u2502\u2500\u2500 settings.py\n\u2502   \u2502\u2500\u2500 urls.py\n\u2502   \u2502\u2500\u2500 asgi.py\n\u2502   \u2514\u2500\u2500 wsgi.py\n\n\u2514\u2500\u2500 testapp\/  (Created when running `startapp`)\n    \u2502\u2500\u2500 migrations\/\n    \u2502\u2500\u2500 __init__.py\n    \u2502\u2500\u2500 admin.py\n    \u2502\u2500\u2500 apps.py\n    \u2502\u2500\u2500 models.py\n    \u2502\u2500\u2500 tests.py\n    \u2502\u2500\u2500 views.py\n    \u2502\u2500\u2500 tests.py    \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create and apply migrations<\/strong> <strong>using the following commands<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python manage.py makemigrations myapp\npython manage.py migrate<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This will create migration files in the created app also create database tables for the modes defined in the django applications<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create urls.py file under testapp<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create a templates directory under testapp and test directory under template directory<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is to store application specific html template files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now the directory structure is as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>myshop\/\n\u2502\u2500\u2500 manage.py\n\u2502\u2500\u2500 templates (Django template files html files are stored in this directory)\n\u2502\u2500\u2500 db.sqlite3 (sqlite database file)\n\u2502\u2500\u2500 myproject\/  # Main project package\n\u2502   \u2502\u2500\u2500 __init__.py\n\u2502   \u2502\u2500\u2500 settings.py\n\u2502   \u2502\u2500\u2500 urls.py\n\u2502   \u2502\u2500\u2500 asgi.py\n\u2502   \u2514\u2500\u2500 wsgi.py\n\n\u2514\u2500\u2500 testapp\/  (Created when running `startapp`)\n    \u2502\u2500\u2500 migrations\/\n    \u2502\u2500\u2500 __init__.py\n    \u2502\u2500\u2500 admin.py\n    \u2502\u2500\u2500 apps.py\n    \u2502\u2500\u2500 models.py \n    \u2502\u2500\u2500 tests.py\n    \u2502\u2500\u2500 views.py (view functions are added in this file)\n    \u2502\u2500\u2500 tests.py\n    \u2502\u2500\u2500 templates\/test (To store application specific html template files)\n    \u2514\u2500\u2500 urls.py  (Manually created for app-specific routes)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. db.sqlite3 (Database)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Default SQLite database file.<\/li>\n\n\n\n<li>You can use <strong>PostgreSQL, MySQL, or other databases<\/strong> in settings.py, corresponding database engine has to be added in settings.py file<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Each Django project can have multiple apps, each responsible for a specific functionality and an app has its own structure<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. testapp\/ (Django App)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We have created django application &#8220;<strong>testapp<\/strong>&#8221; has its own structure:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>migrations\/<\/strong> \u2192 Stores database migration files (generated by makemigrations)..<\/li>\n\n\n\n<li><strong>models.py<\/strong> \u2192 Defines the database models (tables) using Django ORM<\/li>\n\n\n\n<li><strong>views.py<\/strong> \u2192 Contains logic for handling user requests and handles the logic for rendering webpages.<\/li>\n\n\n\n<li><strong>urls.py<\/strong> (manually created) \u2192 Defines URLs specific to the app.<\/li>\n\n\n\n<li><strong>admin.py<\/strong> \u2192 Registers models for Django&#8217;s admin panel.<\/li>\n\n\n\n<li><strong>apps.py<\/strong> \u2192 Defines configuration for the app.<\/li>\n\n\n\n<li><strong>tests.py<\/strong> \u2192 Contains test cases for the app.<\/li>\n\n\n\n<li><strong>templates\/ (HTML Files)<\/strong> Stores HTML templates for rendering dynamic webpages.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update urls.py (project specific mail url file) file in the myshop directory as follows:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>myshop\/urls.py<\/code> (Main URL Configuration)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.contrib import admin\nfrom django.urls import path,include\n\nurlpatterns = &#91;\n    path('admin\/', admin.site.urls),\n    # For every django application add a path to include a application specific urls\n    path('', include('testapp.urls')), # Delegates to app's URL config\n    ]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update urls.py file in testapp directory <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>testapp\/urls.py<\/code> (App URL Configuration)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.urls import path\nfrom . import views\n\nurlpatterns = &#91;\n    path('', views.home, name='home'),\n    path('about\/', views.about, name='about'),\n]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update views.py file in testapp<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">testapp\/views.py<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.http import HttpResponse\n\ndef home(request):\n   return HttpResponse(\"Welcome to the Home Page!\")\n\ndef about(request):\n  return HttpResponse(\"This is the About Page.\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the command prompt run the development server using the command:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>python manage.py runserver<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(myshop_env) D:\\django\\myshop&gt;python manage.py runserver\nWatching for file changes with StatReloader\nPerforming system checks...\n\nSystem check identified no issues (0 silenced).\nApril 18, 2025 - 16:22:03\nDjango version 5.2, using settings 'core.settings'\nStarting development server at http:\/\/127.0.0.1:8000\/\nQuit the server with CTRL-BREAK.\n\nWARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.\nFor more information on production servers see: https:\/\/docs.djangoproject.com\/en\/5.2\/howto\/deployment\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">How URL Dispatching Works ?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In a web browser (chrome or edge) type http:\/\/127.0.0.1\/a<code>bout\/<\/code><\/li>\n\n\n\n<li>Django looks at <code>myshop\/urls.py<\/code> and includes <code>urls from testapp<\/code>.<\/li>\n\n\n\n<li>It then checks <code>testapp\/urls.py<\/code> and finds <code>path('about\/', views.about)<\/code><\/li>\n\n\n\n<li>It calls the <strong><code>about<\/code> <\/strong>view function, which returns an <code>HttpResponse<\/code><\/li>\n\n\n\n<li>In the browser you will see &#8220;This is the About Page.&#8221;<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Now let us add few more URL patterns<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#<code>testapp\/urls.py<\/code> (App URL Configuration)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.urls import path\nfrom . import views\n\nurlpatterns = &#91;\n    path('', views.home, name='home'),\n    path('about\/', views.about, name='about'),\n    path('greet\/&lt;str:name&gt;\/', views.greet_user, name='greet'),\n    path('wish\/&lt;str:name&gt;\/',views.wish_user, name='wish'),\n]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Add a view function (greet) in views.py file<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#testapp\/views.py<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nfrom django.http import HttpResponse\n\ndef home(request):\n     return HttpResponse(\"Welcome to the Home Page!\")\n\ndef about_user(request):\n    return HttpResponse(\"This is the About Page.\")\n\ndef greet_user(request, name):\n    return HttpResponse(f\"Namaskara, {name}!\")\n\ndef wish_user(request, name):\n    context = {\"name\": name}\n    print(\"context\", context)\n    return render(request, 'test\/test1.html',context)               \n \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In the testapp under templates\/test directory, create a test1.html file <\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2514\u2500\u2500 testapp\/  (Created when running `startapp`)\n    \u2502\u2500\u2500 migrations\/\n    \u2502\u2500\u2500 __init__.py\n    \u2502\u2500\u2500 admin.py\n    \u2502\u2500\u2500 apps.py\n    \u2502\u2500\u2500 models.py \n    \u2502\u2500\u2500 tests.py\n    \u2502\u2500\u2500 views.py (view functions are added in this file)\n    \u2502\u2500\u2500 tests.py\n    \u2502\u2500\u2500<strong> templates\/test\/<\/strong>\n    \u2514\u2500\u2500 urls.py  (Manually created for app-specific routes)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>testapp\/tesmplates\/test\/test1.html<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Document&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    {% if name %}\n    \n    &lt;h1&gt; Namaskara {{name}} !, How are you?&lt;\/h1&gt; \n    {% else %}  \n    &lt;h1&gt; Namaskara! How are you?&lt;\/h1&gt; \n    {% endif %}\n\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How URL Dispatching Works<\/strong>?<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In a web browser (chrome or edge) type http:\/\/127.0.0.1\/greet<code>\/Rama\/<\/code><\/li>\n\n\n\n<li>Django looks at <code>myshop\/urls.py<\/code> and includes urls from <code>testapp<\/code>.<\/li>\n\n\n\n<li>It then checks <code>testapp\/urls.py<\/code> and finds <code>path('greet\/', views.greet_user)<\/code><\/li>\n\n\n\n<li>It calls the <code><strong>greet_user<\/strong><\/code> view function, which returns an <code>HttpResponse<\/code> (Rama)<\/li>\n\n\n\n<li>In the browser you will see &#8220;Namaskara Rama.&#8221;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In a web browser (chrome or edge) type http:\/\/127.0.0.1\/wish<code>\/Rama\/<\/code><\/li>\n\n\n\n<li>Django looks at <code>myshop\/urls.py<\/code> and includes <code>urls from testapp<\/code>.<\/li>\n\n\n\n<li>It then checks <code>testapp\/urls.py<\/code> and finds <code>path('wish\/', views.wish_user)<\/code><\/li>\n\n\n\n<li>It calls the <strong>wish_user<\/strong> view function, which returns test1.html with context<\/li>\n\n\n\n<li>test1.html is a django template file, django checks if name exists if it exists places value of name in the {{name}} and passes &#8220;Namaskara Rama!, How are you?&#8221; to the browser, if name do not exist then &#8220;Namaskara!, How are you?&#8221; is passed to the browser.<\/li>\n\n\n\n<li>In the browser you will see &#8220;Namaskara Rama !, How are You?&#8221;<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Try yourself: Add more url patters, create view functions, create html file<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a Django project, URL dispatching is the process of mapping URLs to corresponding views. When a user sends a request to a Django application, Django uses a URL dispatcher&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[47,48,69],"class_list":["post-144","post","type-post","status-publish","format-standard","hentry","category-django","tag-djang-app","tag-django","tag-project"],"_links":{"self":[{"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=144"}],"version-history":[{"count":0,"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=\/wp\/v2\/posts\/144\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kingstatue.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}