{"id":160,"date":"2020-04-10T11:46:39","date_gmt":"2020-04-10T08:46:39","guid":{"rendered":"http:\/\/www.etemkeskin.com\/?p=160"},"modified":"2020-11-22T14:16:41","modified_gmt":"2020-11-22T11:16:41","slug":"creating-interactive-visualizations-with-plotlys-dash-framework","status":"publish","type":"post","link":"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/","title":{"rendered":"Creating Interactive Visualizations with Plotly&#8217;s Dash Framework"},"content":{"rendered":"\n<h3>1. What is DASH?<\/h3>\n\n\n\n<p>Dash is a <strong>Python framework<\/strong> developed for building web applications. However, it is more suitable for data visualization applications. Dash was developed based on <strong>Flask, Plotly.js, ve React.js<\/strong> libraries. Interactive tables, graphs and data visualizations can be easily developed with Dash without knowing javascript.<\/p>\n\n\n\n<p>With Python, people who perform data analysis, data preparation, data visualization, modeling, device control and reporting can easily develop analytical web applications with <strong>dash<\/strong><\/p>\n\n\n\n<p>You can also make your graphics and tables stunning by taking advantage of the power of <strong>CSS<\/strong> and <strong>Html<\/strong> in the dash.<\/p>\n\n\n\n<h3>2. Installations<\/h3>\n\n\n\n<p>Before installing Dash, python3 must be installed on our computer. For this we can install Anaconda on our computer at <a rel=\"noreferrer noopener\" href=\"https:\/\/www.anaconda.com\/\" target=\"_blank\">https:\/\/www.anaconda.com\/<\/a>&nbsp;. After installing Anaconda, we will create <strong>a virtual environment<\/strong> for Dash applications on our computer and install the following packages into it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>conda create --name dash # anacondada virtual ortam olu\u015fturmak\nconda activate dash veya source active dash #windows veya linuxte virtual ortam\u0131 aktive etmek<\/code><\/pre>\n\n\n\n<p>You can use the following commands related to Dash. Or if you just say <strong><code>pip install dash<\/code><\/strong>, you will have installed all of the following packages.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pip install Flask\npip install dash\npip install plotly\npip install dash_html_components # dash html components\npip install dash_core_components # dash core components \npip install dash-table # data table components<\/pre>\n\n\n\n<p>By typing <code><strong>pip freeze<\/strong><\/code>, we can install the python packages into the virtual environment. <\/p>\n\n\n\n<h3>3. Introducing DASH<\/h3>\n\n\n\n<p><strong>Dash html components<\/strong> and <strong>dash core components<\/strong> are used to create interactive tables and graphs in Dash. In the code below, you can understand what the component created with dash actually refers to as html.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import dash_html_components as html\n# Dash html code in python\nhtml.Div([\n    html.H1('First Application'),\n    html.Div([\n        html.P(\"Dash converts Python classes to HTML elements.\"),\n        html.P(\"Javascript is used at frontend.\")\n    ])\n])\n # HTML version of the above python code to be displayed in the web browser\n  &lt;div>\n    &lt;h1>First Dash App&lt;\/h1>\n    &lt;div>\n        &lt;p>Dash converts Python classes into HTML&lt;\/p>\n        &lt;p>This conversion happens behind the scenes by Dash's JavaScript front-end&lt;\/p>\n    &lt;\/div>\n&lt;\/div><\/pre>\n\n\n\n<p>Dash applications basically consist of 2 parts. <strong>Layout and Callbacks<\/strong>.  With Layout, we define how the Dash application will look and how the application works interactively with Callbacks.<\/p>\n\n\n\n<h3>4. Layout and First Application <\/h3>\n\n\n\n<p>Python classes have been defined to create visual components of the application in Dash. These components are defined in <strong>dash_core_components<\/strong> and <strong>dash_html_components<\/strong> packages and we can use them by including them in our project.<\/p>\n\n\n\n<p>Dash Core Components consist of various components to prepare interactive dashboards. In short these are;<\/p>\n\n\n\n<ol><li>Graphs: to create graphs<\/li><li>Tabs: to create tabs<\/li><li>Dropdown: to create dropdpwn<\/li><li>Sliders: to create slider<\/li><li>DatePickers: to select date or date range<\/li><li>Table: to show tables<\/li><li>Markdown: Used as markdown.<\/li><li>Checklist: for Checklist <\/li><li>RadioItems: for Radio button<\/li><li>Location: for location bar<\/li><li>Store: to save data in Browser.<\/li><\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import dash\nimport dash_core_components as dcc\nimport dash_html_components as html\nfrom dash.dependencies import Input, Output\nimport dash_table\n\nexternal_stylesheets = [''] #external css file path can be defined.\n\napp = dash.Dash(__name__, external_stylesheets=external_stylesheets)\n\napp.layout = html.Div(children=[\n    html.H1(children='Hello Dash'),\n\n    html.Div(children='''\n        DASH: First DASH Application.\n    '''),\n\n    dcc.Graph(\n        id='example-graph',\n        figure={\n            'data': [\n                {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'Newyork'},\n                {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name':'London'},\n            ],\n            'layout': {\n                'title': 'Dash Data Visualisation'\n            }\n        }\n    )\n])\n\nif __name__ == '__main__':\n    app.run_server(debug=True)<\/pre>\n\n\n\n<p>First, we created DASH object with &#8220;<strong>app = dash.Dash (__ name__)<\/strong>&#8220;.  Then we defined how the layout will be with app.layout in the application.<\/p>\n\n\n\n<p>We defined the graphic in our application with dcc.Graph () in layout. We entered information about the data and the type of the chart into the chart.<\/p>\n\n\n\n<p>In the end, we are launching our application with app.run_serv (debug = True). When we run the application, we get the following output in the web browser.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1085\" height=\"515\" src=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash1.jpg\" alt=\"\" data-id=\"193\" data-full-url=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash1.jpg\" data-link=\"http:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/dash-ve-plotly-ile-raporlama-ekranlari-hazirlama\/dash1\/\" class=\"wp-image-193\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<h3>5. DASH Callbacks<\/h3>\n\n\n\n<p>In Dash application, we use the <strong>@ app.callback () decorator<\/strong> above function to make our graphics interactive.<\/p>\n\n\n\n<p>Let&#8217;s examine the simplest callback application below. First, we define the <strong>dash core element<\/strong> from which we will get input in our layout. This is the equivalent of the <strong>form element<\/strong> in html. The value of this input element is reached in the callback decorator with the element&#8217;s<strong> id = &#8216;my-id&#8217;<\/strong> value and we use it in the function. Then, in the layout where this value will be used and where we will render it as output, we reach the element in the layout with<strong> id = &#8216;my-div&#8217;<\/strong> in the decorator and we can return either a graphic or an output element according to the feature of the function.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import dash\nimport dash_core_components as dcc\nimport dash_html_components as html\nfrom dash.dependencies import Input, Output\n\napp = dash.Dash(__name__)\n\napp.layout = html.Div([\n    dcc.Input(id='my-id', value='initial value', type='text'),\n    html.Div(id='my-div')\n])\n\n@app.callback(\n    Output(component_id='my-div', component_property='children'),\n    [Input(component_id='my-id', component_property='value')]\n)\ndef update_output_div(input_value):\n    return 'Girdi\u011finiz de\u011fer: \"{}\"'.format(input_value)\n\nif __name__ == '__main__':\n    app.run_server(debug=True)<\/pre>\n\n\n\n<p>We made our layout interactive with the app.callback () decorator that we write the <strong>update_output_div ()<\/strong> above function. Since we entered 5, we get 5 as output.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"391\" height=\"209\" src=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash2.jpg\" alt=\"\" data-id=\"200\" data-full-url=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash2.jpg\" data-link=\"http:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/dash-ve-plotly-ile-raporlama-ekranlari-hazirlama\/dash2\/\" class=\"wp-image-200\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Let&#8217;s look at a more advanced callback application.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import dash\nimport dash_core_components as dcc\nimport dash_html_components as html\nfrom dash.dependencies import Input, Output\nimport pandas as pd\n\ndf = pd.read_csv('https:\/\/raw.githubusercontent.com\/plotly\/datasets\/master\/gapminderDataFiveYear.csv')\n\nexternal_stylesheets = ['https:\/\/codepen.io\/chriddyp\/pen\/bWLwgP.css']\n\napp = dash.Dash(__name__, external_stylesheets=external_stylesheets)\n\napp.layout = html.Div([\n    dcc.Graph(id='graph-with-slider'),\n    dcc.Slider(\n        id='year-slider',\n        min=df['year'].min(),\n        max=df['year'].max(),\n        value=df['year'].min(),\n        marks={str(year): str(year) for year in df['year'].unique()},\n        step=None\n    )\n])\n\n@app.callback(\n    Output('graph-with-slider', 'figure'),\n    [Input('year-slider', 'value')])\ndef update_figure(selected_year):\n    filtered_df = df[df.year == selected_year]\n    traces = []\n    for i in filtered_df.continent.unique():\n        df_by_continent = filtered_df[filtered_df['continent'] == i]\n        traces.append(dict(\n            x=df_by_continent['gdpPercap'],\n            y=df_by_continent['lifeExp'],\n            text=df_by_continent['country'],\n            mode='markers',\n            opacity=0.7,\n            marker={\n                'size': 15,\n                'line': {'width': 0.5, 'color': 'white'}\n            },\n            name=i\n        ))\n\n    return {\n        'data': traces,\n        'layout': dict(\n            xaxis={'type': 'log', 'title': 'GDP Per Capita',\n                   'range':[2.3, 4.8]},\n            yaxis={'title': 'Life Expectancy', 'range': [20, 90]},\n            margin={'l': 40, 'b': 40, 't': 10, 'r': 10},\n            legend={'x': 0, 'y': 1},\n            hovermode='closest',\n            transition = {'duration': 500},\n        )\n    }\n\n\nif __name__ == '__main__':\n    app.run_server(debug=True)<\/pre>\n\n\n\n<p>We made graph interactive by adding a <strong>slider<\/strong> to our chart. We determine where the graph will be rendered by defining it with <strong>dcc.Graph (id = &#8216;graph-with-slider&#8217;)<\/strong> in the layout. Note that the Input is defined in square brackets.<\/p>\n\n\n\n<p>The output of the application <\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1012\" height=\"533\" src=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash3.jpg\" alt=\"\" data-id=\"203\" data-full-url=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash3.jpg\" data-link=\"http:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/dash-ve-plotly-ile-raporlama-ekranlari-hazirlama\/dash3\/\" class=\"wp-image-203\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<h3>6. DASH DATATABLE<\/h3>\n\n\n\n<p>Dash datatable is a component created for seeing the data together in the tables, providing sorting and interactivity. Below is the simplest dash datatable created with Dash.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import dash\nimport dash_table\nimport pandas as pd\n\ndf = pd.read_csv('https:\/\/raw.githubusercontent.com\/plotly\/datasets\/master\/solar.csv')\n\napp = dash.Dash(__name__)\n\napp.layout = dash_table.DataTable(\n    id='table',\n    columns=[{\"name\": i, \"id\": i} for i in df.columns],\n    data=df.to_dict('records'),\n)\n\nif __name__ == '__main__':\n    app.run_server(debug=True)<\/pre>\n\n\n\n<p>We can see the table below as output.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"321\" src=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash4.jpg\" alt=\"\" data-id=\"206\" data-full-url=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash4.jpg\" data-link=\"http:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/dash-ve-plotly-ile-raporlama-ekranlari-hazirlama\/dash4\/\" class=\"wp-image-206\"\/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>We can add a lot of features to this table by utilizing the documentation of DASH.<\/p>\n\n\n\n<h4>SOURCES<\/h4>\n\n\n\n<ol><li>https:\/\/medium.com\/plotly\/introducing-dash-5ecf7191b503<\/li><li>https:\/\/medium.com\/analytics-vidhya\/building-a-dashboard-app-using-plotlys-dash-a-complete-guide-from-beginner-to-pro-61e890bdc423<\/li><li>https:\/\/dash.plotly.com\/<\/li><li>https:\/\/hackersandslackers.com\/plotly-dash-with-flask\/<\/li><li>https:\/\/medium.com\/swlh\/dashboards-in-python-for-beginners-and-everyone-else-using-dash-f0a045a86644<\/li><li>https:\/\/levelup.gitconnected.com\/dashboards-in-python-for-beginners-using-dash-live-updates-and-streaming-data-into-a-dashboard-37660c1ba661<\/li><li>https:\/\/towardsdatascience.com\/how-to-build-a-complex-reporting-dashboard-using-dash-and-plotl-4f4257c18a7f<\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<p>1. What is DASH? Dash is a Python framework developed for building web applications. However, it is more suitable for data visualization applications. Dash was developed based on Flask, Plotly.js, ve React.js libraries. Interactive tables, graphs and data visualizations can be easily developed with Dash without knowing javascript. With Python, people who perform data analysis, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating Interactive Visualizations with Plotly&#039;s Dash Framework - blog website<\/title>\n<meta name=\"description\" content=\"Dash is a Python framework developed for building web applications. However, it is more suitable for data visualization applications. Dash was developed based on Flask, Plotly.js, ve React.js libraries. Interactive tables, graphs and data visualizations can be easily developed with Dash without knowing javascript. With Python, people who perform data analysis, data preparation, data visualization, modeling, device control and reporting can easily develop analytical web applications with dash\" \/>\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.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating Interactive Visualizations with Plotly&#039;s Dash Framework - blog website\" \/>\n<meta property=\"og:description\" content=\"Dash is a Python framework developed for building web applications. However, it is more suitable for data visualization applications. Dash was developed based on Flask, Plotly.js, ve React.js libraries. Interactive tables, graphs and data visualizations can be easily developed with Dash without knowing javascript. With Python, people who perform data analysis, data preparation, data visualization, modeling, device control and reporting can easily develop analytical web applications with dash\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"blog website\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-10T08:46:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-22T11:16:41+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash1.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.etemkeskin.com\/#website\",\"url\":\"https:\/\/www.etemkeskin.com\/\",\"name\":\"blog website\",\"description\":\"Etem KESK\\u0130N\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.etemkeskin.com\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/#primaryimage\",\"inLanguage\":\"tr\",\"url\":\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash1.jpg\",\"contentUrl\":\"http:\/\/www.etemkeskin.com\/wp-content\/uploads\/2020\/04\/dash1.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/#webpage\",\"url\":\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/\",\"name\":\"Creating Interactive Visualizations with Plotly's Dash Framework - blog website\",\"isPartOf\":{\"@id\":\"https:\/\/www.etemkeskin.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/#primaryimage\"},\"datePublished\":\"2020-04-10T08:46:39+00:00\",\"dateModified\":\"2020-11-22T11:16:41+00:00\",\"author\":{\"@id\":\"https:\/\/www.etemkeskin.com\/#\/schema\/person\/dcbc30282861ce578b96a79ce8789629\"},\"description\":\"Dash is a Python framework developed for building web applications. However, it is more suitable for data visualization applications. Dash was developed based on Flask, Plotly.js, ve React.js libraries. Interactive tables, graphs and data visualizations can be easily developed with Dash without knowing javascript. With Python, people who perform data analysis, data preparation, data visualization, modeling, device control and reporting can easily develop analytical web applications with dash\",\"breadcrumb\":{\"@id\":\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.etemkeskin.com\/index.php\/2020\/04\/10\/creating-interactive-visualizations-with-plotlys-dash-framework\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.etemkeskin.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating Interactive Visualizations with Plotly&#8217;s Dash Framework\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.etemkeskin.com\/#\/schema\/person\/dcbc30282861ce578b96a79ce8789629\",\"name\":\"etemkeskin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.etemkeskin.com\/#personlogo\",\"inLanguage\":\"tr\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6af0148b790691ed24ae245fb3dc773b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6af0148b790691ed24ae245fb3dc773b?s=96&d=mm&r=g\",\"caption\":\"etemkeskin\"},\"url\":\"https:\/\/www.etemkeskin.com\/index.php\/author\/etemkeskinyahoo-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/posts\/160"}],"collection":[{"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/comments?post=160"}],"version-history":[{"count":66,"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/posts\/160\/revisions"}],"predecessor-version":[{"id":535,"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/posts\/160\/revisions\/535"}],"wp:attachment":[{"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/media?parent=160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/categories?post=160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.etemkeskin.com\/index.php\/wp-json\/wp\/v2\/tags?post=160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}