{"id":246,"date":"2021-04-11T19:02:21","date_gmt":"2021-04-11T10:02:21","guid":{"rendered":"http:\/\/www.agile-software.site\/?p=246"},"modified":"2021-07-11T21:24:28","modified_gmt":"2021-07-11T12:24:28","slug":"django%e8%a8%ad%e5%ae%9a","status":"publish","type":"post","link":"https:\/\/agile-software.net\/?p=246","title":{"rendered":"Django(\u30d6\u30ed\u30b0\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8a2d\u5b9a)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">2\u30ab\u30e9\u30e0\u30ec\u30a4\u30a2\u30a6\u30c8<\/h2>\n\n\n\n<p>2\u3064\u306e\u30ab\u30e9\u30e0\u3092\u4f7f\u3063\u3066\u69cb\u6210\u3055\u308c\u305f\u30ec\u30a4\u30a2\u30a6\u30c8\u304c2\u30ab\u30e9\u30e0\u306e\u30ec\u30a4\u30a2\u30a6\u30c8\u3067\u3059\u3002<br>\u5e83\u3044\u5e45\u306e\u30ab\u30e9\u30e0\u306b\u30e1\u30a4\u30f3\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u7f6e\u304d\u3001\u72ed\u3044\u5e45\u306e\u30ab\u30e9\u30e0\u306b\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30e1\u30cb\u30e5\u30fc\u306a\u3069\u3092\u7f6e\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-medium-font-size\">\u30d5\u30ea\u30fc\u30ec\u30a4\u30a2\u30a6\u30c8<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-medium-font-size\">\u30de\u30eb\u30c1\u30ab\u30e9\u30e0\u30ec\u30a4\u30a2\u30a6\u30c8<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-medium-font-size\">\u30e2\u30b6\u30a4\u30af\u30ec\u30a4\u30a2\u30a6\u30c8<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-medium-font-size\">\u30bf\u30a4\u30eb\u578b\u30ec\u30a4\u30a2\u30a6\u30c8<\/p>\n\n\n\n<p><\/p>\n<\/div><\/div>\n\n\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/sankoudesign.com\/category\/2column\/\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"556\" src=\"http:\/\/www.agile-software.site\/wp-content\/uploads\/2021\/05\/sankou-1024x556.png\" alt=\"\" class=\"wp-image-575\" srcset=\"https:\/\/agile-software.net\/wp-content\/uploads\/2021\/05\/sankou-1024x556.png 1024w, https:\/\/agile-software.net\/wp-content\/uploads\/2021\/05\/sankou-300x163.png 300w, https:\/\/agile-software.net\/wp-content\/uploads\/2021\/05\/sankou-768x417.png 768w, https:\/\/agile-software.net\/wp-content\/uploads\/2021\/05\/sankou-1536x833.png 1536w, https:\/\/agile-software.net\/wp-content\/uploads\/2021\/05\/sankou.png 1865w, http:\/\/www.agile-software.site\/wp-content\/uploads\/2021\/05\/sankou-1024x556.png 856w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>https:\/\/sankoudesign.com\/category\/2column\/<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">requirements.txt\u4f5c\u6210<\/h2>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>Django~=3.1.4\ndjango-widget-tweaks~=1.4.8\ndjango-allauth~=0.41.0<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u4eee\u60f3\u74b0\u5883\u306b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>(myvenv) ~$ pip3 install -r requirements.txt<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">1.\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210<\/h2>\n\n\n\n<p>mysite\u3068\u3044\u3046\u540d\u524d\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\" data-file=\"\u30b3\u30de\u30f3\u30c9\"><code>(myvenv) ~$ django-admin startproject mysite .<\/code><\/pre><\/div>\n\n\n\n<p>\u5404\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u306f\u4e0b\u8a18\u8a18\u4e8b\u3092\u53c2\u8003\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/04\/django\/\n\n\n\n<h2 class=\"wp-block-heading\">2.\u30a2\u30d7\u30ea\u306e\u4f5c\u6210<\/h2>\n\n\n\n<p>Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e2d\u306b\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u300cmanage.py\u300d\u3068\u3044\u3046\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f7f\u3063\u3066\u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30a2\u30d7\u30ea\u540d\u306f\u597d\u304d\u306a\u540d\u524d\u3067\u5927\u4e08\u592b\u3067\u3059\u3002<br>\u4eca\u56de\u306fapp\u3068\u3044\u3046\u540d\u524d\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>(myvenv) ~$ python3 manage.py startapp app<\/code><\/pre><\/div>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u305f\u7d50\u679c\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\u251c\u2500\u2500 app \/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n\u2502   \u251c\u2500\u2500 admin.py \/\/ \u7ba1\u7406\u30b5\u30a4\u30c8\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\n\u2502   \u251c\u2500\u2500 apps.py \/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u69cb\u6210\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 migrations \/\/ \u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u3092\u683c\u7d0d\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n\u2502   \u2502   \u2514\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 models.py \/\/ \u30e2\u30c7\u30eb\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\n\u2502   \u251c\u2500\u2500 tests.py \/\/ \u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\n\u2502   \u2514\u2500\u2500 views.py \/\/ \u30d3\u30e5\u30fc\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\n\u251c\u2500\u2500 db.sqlite3 \/\/ \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\n\u251c\u2500\u2500 manage.py\u3000\/\/ \u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb\n\u251c\u2500\u2500 mysite \/\/ \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 settings.py \/\/ \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\n\u2502   \u251c\u2500\u2500 urls.py \/\/ \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7528\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\n\u2502   \u2514\u2500\u2500 wsgi.py \/\/ \u30c7\u30d7\u30ed\u30a4\u7528\u30d5\u30a1\u30a4\u30eb\n\u251c\u2500\u2500 myvenv \/\/ \u4eee\u60f3\u74b0\u5883\n\u2502   \u2514\u2500\u2500 ...\n\u2514\u2500\u2500 requirements.txt \/\/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d5\u30a1\u30a4\u30eb<\/code><\/pre><\/div>\n\n\n\n<p>\u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u305f\u5f8c\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3057\u3066\u4f5c\u6210\u3057\u305f\u30a2\u30d7\u30ea\u3092\u8a8d\u8b58\u3055\u305b\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002<br>\u305d\u306e\u305f\u3081\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306esetting.py\u3092\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>INSTALLED_APPS\u306e\u4e2d\u306b\u306f\u307b\u304b\u306b\u305f\u304f\u3055\u3093\u306e\u30a2\u30d7\u30ea\u304c\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u304c\u3053\u308c\u306f\u30e6\u30fc\u30b6\u30fc\u306e\u60c5\u5831\u3092\u6574\u7406\u3059\u308b\u3046\u3048\u3067\u4f7f\u308f\u308c\u308b\u30a2\u30d7\u30ea\u3092Django\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u6e96\u5099\u3057\u3066\u304f\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"mysite\/setting.py\" data-lang=\"Python\"><code>INSTALLED_APPS = [\n    &#39;django.contrib.admin&#39;,\n    &#39;django.contrib.auth&#39;,\n    &#39;django.contrib.contenttypes&#39;,\n    &#39;django.contrib.sessions&#39;,\n    &#39;django.contrib.messages&#39;,\n    &#39;django.contrib.staticfiles&#39;,\n    &#39;widget_tweaks&#39;, # \u8ffd\u52a0\n    &#39;app&#39;, # \u8ffd\u52a0\n]<\/code><\/pre><\/div>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30db\u30fc\u30e0\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u3068\u304d\u306bCSS\u30af\u30e9\u30b9\u3084\u5c5e\u6027\u3092\u5909\u66f4\u3067\u304d\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0<\/h2>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box3\"><div class=\"kaisetsu-box3-title\">\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0<\/div>\n<p>\u3042\u308b\u60c5\u5831\u3092\u5f62\u3092\u5909\u3048\u3066\u8868\u73fe\u3059\u308b\u3053\u3068\u3002<br>Django\u3067\u306f\u3001\u591a\u304f\u306e\u60c5\u5831\u3092\u6574\u7406\u3057\u3066html\u30d5\u30a1\u30a4\u30eb\u306b\u4e0a\u624b\u306b\u8868\u73fe\u3059\u308b\u4ed5\u7d44\u307f\u304c\u5099\u308f\u3063\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/24\/django-render%e3%83%a1%e3%82%bd%e3%83%83%e3%83%89\/\n\n\n\n<h2 class=\"wp-block-heading\">3.settings.py\u306e\u8a2d\u5b9a\u5909\u66f4<\/h2>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\" data-file=\"mysite\/settings.py\"><code>ALLOWED_HOSTS = [&#39;*&#39;]\n\nLANGUAGE_CODE = &#39;ja&#39;\n\nTIME_ZONE = &#39;Asia\/Tokyo&#39;<\/code><\/pre><\/div>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/24\/django-mysite-setting-py\/\n\n\n\n<p>INSTALLED_APPS\u306bwidget_tweaks\u3068app\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<br>INSTALLED_APPS\u3068\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u5404\u7a2e\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u767b\u9332\u3059\u308b\u3082\u306e\u3067\u3059\u3002<br>\u306a\u305c\u767b\u9332\u3059\u308b\u306e\u304b\u3068\u3044\u3046\u3068Django\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u6a5f\u80fd\u304capp\u5185\u306etemplates\u3092\u691c\u7d22\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3067\u3059\u3002\u3082\u3057\u3001\u767b\u9332\u3057\u3066\u3044\u306a\u3044\u3068Django\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u6a5f\u80fd\u304capp\u5185\u306b\u3042\u308btemplate\u30d5\u30a9\u30eb\u30c0\u3092\u691c\u7d22\u3057\u3066\u304f\u308c\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># Application definition\n\nINSTALLED_APPS = [\n    &#39;django.contrib.admin&#39;,\n    &#39;django.contrib.auth&#39;,\n    &#39;django.contrib.contenttypes&#39;,\n    &#39;django.contrib.sessions&#39;,\n    &#39;django.contrib.messages&#39;,\n    &#39;django.contrib.staticfiles&#39;,\n    &#39;widget_tweaks&#39;, # \u8ffd\u52a0\n    &#39;app&#39;, # \u8ffd\u52a0\n]<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">4.\u30e2\u30c7\u30eb<\/h2>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/17\/%e3%83%a2%e3%83%87%e3%83%ab\/\n\n\n\n<h3 class=\"wp-block-heading\">\u30a4\u30f3\u30dd\u30fc\u30c8<\/h3>\n\n\n\n<p>settings\u3001timezone\u3001models\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30af\u30e9\u30b9<\/h3>\n\n\n\n<p>\u4eca\u56de\u30d6\u30ed\u30b0\u306b\u4f7f\u3046\u60c5\u5831\u3068\u3057\u3066\u7b46\u8005\u3001\u30bf\u30a4\u30c8\u30eb\u3001\u672c\u6587\u3001\u4f5c\u6210\u65e5\u3068\u3057\u307e\u3059\u3002<br>\u30af\u30e9\u30b9\u306e\u540d\u524d\u3092Post\u3068\u3057\u30666\u884c\u76ee\u4ee5\u4e0b\u306b\u5177\u4f53\u7684\u306b\u5165\u308c\u3066\u3044\u304f\u30c7\u30fc\u30bf\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u307e\u3059\u3002<br>models.Model\u306fmodels\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u4e2d\u306eModel\u30af\u30e9\u30b9\u3092\u7d99\u627f\u3055\u305b\u308b\u305f\u3081\u306b\u66f8\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>ForeignKey\u306f\u307b\u304b\u306e\u30e2\u30c7\u30eb\u3068\u9023\u643a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u30ed\u30b0\u30a4\u30f3\u30e6\u30fc\u30b6\u30fc\u306b\u306a\u308a\u307e\u3059\u3002<br>CASCADE\u3068\u3059\u308b\u3053\u3068\u3067\u4e00\u7dd2\u306b\u524a\u9664\u3055\u308c\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002<br>\u6700\u5f8c\u306e2\u884c\u306f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30bf\u30a4\u30c8\u30eb\u3067\u8868\u73fe\u3059\u308b\u305f\u3081\u306b\u66f8\u3044\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"app\/models.py\" data-lang=\"Python\"><code>from django.conf import settings\nfrom django.db import models\nfrom django.utils import timezone\n\n\nclass Post(models.Model):\n\tauthor = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)\n\ttitle = models.CharField(&quot;\u30bf\u30a4\u30c8\u30eb&quot;, max_length=200)\n\tcontent = models.TextField(&quot;\u672c\u6587&quot;)\n\tcreated = models.DateTimeField(&quot;\u4f5c\u6210\u65e5&quot;, default=timezone.now)\n\n\tdef __str__(self):\n\t\treturn self.title<\/code><\/pre><\/div>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/17\/django%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89\/\n\n\n\n<h2 class=\"wp-block-heading\">\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3<\/h2>\n\n\n\n<p><span class=\"marker2\"><strong>model.py\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u66f4\u3057\u305f\u3089\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u5909\u66f4\u5185\u5bb9\u3092\u53cd\u6620\u3055\u305b\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/strong><\/span><br>\u305d\u308c\u3092makemigrations\u3068migrate\u3068\u547c\u3073\u307e\u3059\u3002<\/p>\n\n\n\n<p>makemigration\u306fmodels.py\u30d5\u30a1\u30a4\u30eb\u306e\u8a18\u8f09\u5185\u5bb9\u306b\u57fa\u3065\u3044\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a2d\u8a08\u56f3\u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br>\u3053\u3046\u3059\u308b\u3053\u3068\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306bmigrate\u3059\u308b\u524d\u306b\u8a2d\u8a08\u56f3\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067\u30a8\u30e9\u30fc\u306a\u3069\u304c\u3042\u3063\u305f\u5834\u5408\u306b\u53cd\u6620\u3059\u308b\u524d\u306b\u6559\u3048\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>migrate\u306fmakemigrations\u30b3\u30de\u30f3\u30c9\u306b\u3088\u3063\u3066\u4f5c\u6210\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u306b\u57fa\u3065\u3044\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u5909\u66f4\u3092\u53cd\u6620\u3055\u305b\u308b\u30b3\u30de\u30f3\u30c9\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>(myvenv) ~$ python3 manage.py makemigrations\n(myvenv) ~$ python3 manage.py migrate<\/code><\/pre><\/div>\n\n\n\n<p><br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"428\" src=\"http:\/\/www.agile-software.site\/wp-content\/uploads\/2021\/04\/\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3.png\" alt=\"\" class=\"wp-image-259\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ba1\u7406\u753b\u9762<\/h2>\n\n\n\n<p>\u7ba1\u7406\u753b\u9762\u3067\u30c7\u30fc\u30bf\u306e\u4f5c\u6210\u3001\u7de8\u96c6\u3001\u524a\u9664\u3092\u64cd\u4f5c\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u304d\u307e\u3059\u3002<br>admin.py\u30d5\u30a1\u30a4\u30eb\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u306b\u3088\u3063\u3066\u7ba1\u7406\u753b\u9762\u306bmodel.py\u3067\u4f5c\u6210\u3057\u305fPost\u30e2\u30c7\u30eb\u3092\u8a8d\u8b58\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>register\u95a2\u6570\u3092\u4f7f\u3063\u3066\u30e2\u30c7\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"app\/admin.py\" data-lang=\"Python\"><code>from django.contrib import admin\nfrom .models import Post\n\nadmin.site.register(Post)<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ba1\u7406\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210<\/h2>\n\n\n\n<p>\u7ba1\u7406\u753b\u9762\u306b\u5165\u308b\u305f\u3081\u306b\u306f\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u308c\u3066\u30ed\u30b0\u30a4\u30f3\u3092\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002<br>\u305d\u306e\u305f\u3081\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>(myvenv) ~$ python3 manage.py createsuperuser<\/code><\/pre><\/div>\n\n\n\n<p>createsuperuser\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9,\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5165\u529b\u304c\u6c42\u3081\u3089\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ba1\u7406\u753b\u9762\u306e\u8868\u793a<\/h2>\n\n\n\n<p>\u30b5\u30fc\u30d0\u30fc\u3092\u7acb\u3061\u4e0a\u3052\u307e\u3059\u3002<\/p>\n\n\n\n<p>Django\u306fWeb\u30b5\u30fc\u30d0\u30fc\u306e\u6a5f\u80fd\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002<br>\u8a66\u9a13\u7528\u306eWeb\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u3001\u305d\u3053\u3067Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u52d5\u304b\u305b\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>(myvenv) ~$ python3 manage.py runserver<\/code><\/pre><\/div>\n\n\n\n<p><a href=\"http:\/\/127.0.0.1:8000\/admin\">http:\/\/127.0.0.1:8000\/admin<\/a>\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u7ba1\u7406\u753b\u9762\u3092\u8868\u793a\u3055\u305b\u307e\u3057\u3087\u3046\u3002<br>\u5148\u307b\u3069\u4f5c\u6210\u3057\u305fsuperuser\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"372\" src=\"http:\/\/www.agile-software.site\/wp-content\/uploads\/2021\/04\/\u7ba1\u7406\u753b\u9762.png\" alt=\"\" class=\"wp-image-302\" srcset=\"https:\/\/agile-software.net\/wp-content\/uploads\/2021\/04\/\u7ba1\u7406\u753b\u9762.png 1023w, https:\/\/agile-software.net\/wp-content\/uploads\/2021\/04\/\u7ba1\u7406\u753b\u9762-300x109.png 300w, https:\/\/agile-software.net\/wp-content\/uploads\/2021\/04\/\u7ba1\u7406\u753b\u9762-768x279.png 768w, http:\/\/www.agile-software.site\/wp-content\/uploads\/2021\/04\/\u7ba1\u7406\u753b\u9762.png 856w\" sizes=\"auto, (max-width: 1023px) 100vw, 1023px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">urls.py\u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a<\/h2>\n\n\n\n<p>urls.py\u30d5\u30a1\u30a4\u30eb\u306f\u4e0a\u304b\u3089\u9806\u756a\u306bURL\u306e\u7167\u5408\u304c\u884c\u308f\u308c\u3066\u3044\u304f\u305f\u3081127.0.0.1:8000\/admin\u3068\u3044\u3046URL\u304crequest\u3055\u308c\u305f\u5834\u5408\u306b\u306fadmin.site.urls\u304c\u547c\u3073\u51fa\u3055\u308c\u3001\u305d\u308c\u4ee5\u5916\u306eURL\u304crequest\u3055\u308c\u305f\u5834\u5408\u306fapp\u306eurls.py\u304c\u547c\u3073\u51fa\u3055\u308c\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box5\"><div class=\"kaisetsu-box5-title\">urlpatterns<\/div>\n<p>\u305d\u306e\u30a2\u30c9\u30ec\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3057\u305f\u3089\u6307\u5b9a\u306e\u51e6\u7406\u3092\u5b9f\u884c\u3059\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>path(\u30a2\u30af\u30bb\u30b9\u3059\u308b\u30a2\u30c9\u30ec\u30b9\u3001\u547c\u3073\u51fa\u3059\u51e6\u7406)<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box5\"><div class=\"kaisetsu-box5-title\">include<\/div>\n<p>include\u95a2\u6570\u306f\u5f15\u6570\u306b\u6307\u5b9a\u3057\u305f\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u3082\u306e\u3067\u3059\u3002<br>app\u30d5\u30a9\u30eb\u30c0\u5185\u306eurls.py\u304c\u8aad\u307f\u8fbc\u307e\u308c&#8217;127.0.0.1.8000\/&#8217;\u306e\u30a2\u30c9\u30ec\u30b9\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code> path(&#39; &#39;, include(&#39;app.urls&#39;)),<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"mysite\/urls.py\" data-lang=\"Python\"><code>from django.contrib import admin\nfrom django.urls import path, include\n\nurlpatterns = [\n    path(&#39;admin\/&#39;, admin.site.urls),\n    path(&#39; &#39;, include(&#39;app.urls&#39;)),\n]<\/code><\/pre><\/div>\n\n\n\n<p>\u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u305f\u6642\u306burls.py\u30d5\u30a1\u30a4\u30eb\u306f\u4f5c\u6210\u3055\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u3087\u3046\u3002<br>\u30c8\u30c3\u30d7\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u304c\u3042\u3063\u305f\u5834\u5408\u3001view\u306eIndexView\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"app\/urls.py\" data-lang=\"Python\"><code>from django.urls import path\nfrom app import views\n\nurlpatterns = [\n    path(&#39;&#39;, views.IndexView.as_view(), name=&#39;index&#39;),\n]<\/code><\/pre><\/div>\n\n\n\n<p><span class=\"marker2\"><strong>views.py\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u3067IndexView\u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u305fview\u3092\u547c\u3073\u51fa\u3059<\/strong><\/span>\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002<br>as_view\u306fDjango\u304c\u7528\u610f\u3057\u305f\u95a2\u6570\u3092\u7d99\u627f\u3059\u308b\u3068\u304d\u306b\u5fc5\u9808\u3067\u3059\u3002<br>\u7b2c\u4e09\u5f15\u6570\u306ename=&#8217;index&#8217;\u3068\u3059\u308b\u3053\u3068\u3067\u3001\u3053\u306epath\u306b\u540d\u524d\u3092\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br>\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u540d\u524d\u3092\u3064\u3051\u308b\u3053\u3068\u3067\u3001\u540d\u524d\u304b\u3089URL\u3092\u9006\u5f15\u304d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-jin-gb-block-icon-box jin-icon-caution jin-iconbox\"><div class=\"jin-iconbox-icons\"><i class=\"jic jin-ifont-caution jin-icons\"><\/i><\/div><div class=\"jin-iconbox-main\">\n<p>\u3053\u3053\u3067\u6ce8\u610f\u3057\u3066\u3044\u305f\u3060\u304d\u305f\u3044\u306e\u304c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eurls.py\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304b\u308c\u305fURL\u4ee5\u4e0b\u306e\u90e8\u5206\u304c\u30a2\u30d7\u30ea\u306eurls.py\u30d5\u30a1\u30a4\u30eb\u306eurlpatterns\u306b\u66f8\u304b\u308c\u308b\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n<\/div><\/div>\n\n\n\n<p>\u4f8b\u3048\u3070127.0.0.1.8000\/hellowworldapp\/app\u3068\u3044\u3046URL\u304crequest\u3055\u308c\u305f\u5834\u5408\u3001\u4e0a\u306f127.0.0.1.8000\/hellowworldapp\/app\u3068URL\u304c\u8a8d\u8b58\u3055\u308c\u3066\u30d6\u30e9\u30a6\u30b6\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u304c\u3001\u4e0b\u306f127.0.0.1.8000\/hellowworldapp\/hellowworldapp\/app\u3068\u306a\u3063\u3066\u3057\u307e\u3046\u305f\u3081\u30a8\u30e9\u30fc\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-vivid-red-color has-cyan-bluish-gray-background-color has-text-color has-background\">\u3007<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>#\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eurls.py\nurlpatterns = [\n    path(&#39;helloworldapp\/&#39;, include(&#39;helloworldapp.urls&#39;)),\n]\n\n#\u30a2\u30d7\u30ea\u306eurls.py\nurlpatterns = [\n    path(&#39;app\/&#39;, include(&#39;helloworldapp.urls&#39;)),\n]<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-vivid-cyan-blue-color has-cyan-bluish-gray-background-color has-text-color has-background\">\u00d7<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>#\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eurls.py\nurlpatterns = [\n    path(&#39;helloworldapp\/&#39;, include(&#39;helloworldapp.urls&#39;)),\n]\n\n#\u30a2\u30d7\u30ea\u306eurls.py\nurlpatterns = [\n    path(&#39;helloworldapp\/app\/&#39;, include(&#39;helloworldapp.urls&#39;)),\n]<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u30d3\u30e5\u30fc<\/h2>\n\n\n\n<p>\u30d3\u30e5\u30fc\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u53f8\u4ee4\u5854\u3068\u306a\u308a\u3001\u30d5\u30a9\u30fc\u30e0\u3001\u30e2\u30c7\u30eb\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u3084\u308a\u3068\u308a\u3092\u3057\u307e\u3059\u3002<br>\u3053\u3053\u3067\u306fView\u3092\u7d99\u627f\u3057\u3066\u3044\u307e\u3059\u3002<br>\u30e2\u30c7\u30eb\u306fPost\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">View<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"app\/views.py\" data-lang=\"Python\"><code>from django.views.generic import View\nfrom django.shortcuts import render\nfrom .models import Post\n\n\nclass IndexView(View):\n    def get(self, request, *args, **kwargs):\n        post_data = Post.objects.order_by(&quot;-id&quot;)\n        return render(request, &#39;app\/index.html&#39;, {\n            &#39;post_data&#39;: post_data,\n        })<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">import\u6587<\/h4>\n\n\n\n<p>django.shortcuts\u3068\u3044\u3046\u3068\u3053\u308d\u306b\u7528\u610f\u3055\u308c\u3066\u3044\u308brender\u3068\u3044\u3046\u95a2\u6570\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u306e\u8a18\u8ff0\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>from django.shortcuts import render<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">get\u95a2\u6570\u306fview\u304c\u30b3\u30fc\u30eb\u3055\u308c\u305f\u3089\u6700\u521d\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u95a2\u6570<\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code> def get(self, request, *args, **kwargs):<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Post\u30e2\u30c7\u30eb\u3092\u547c\u3073\u51fa\u3057\u3001\u964d\u9806\u306b\u4e26\u3073\u5909\u3048\u3066\u3044\u307e\u3059\u3002<\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code> post_data = Post.objects.order_by(&quot;-id&quot;)<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">\u5909\u6570\u306e\u6307\u5b9a<\/h4>\n\n\n\n<p>post_data\u3068\u3044\u3046\u5909\u6570\u306bpost_data\u3092\u4ee3\u5165\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>         return render(request, &#39;app\/index.html&#39;, {\n            &#39;post_data&#39;: post_data,\n        })<\/code><\/pre><\/div>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/17\/django_view\/\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/24\/django-render%e3%83%a1%e3%82%bd%e3%83%83%e3%83%89\/\n\n\n\n<h2 class=\"wp-block-heading\">form<\/h2>\n\n\n\n<p>\u30d5\u30a9\u30fc\u30e0\u753b\u9762\u3067\u5165\u529b\u3055\u308c\u305f\u5024\u3092\u30d5\u30a9\u30fc\u30e0\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3001\u4fdd\u6301\u3057\u307e\u3059\u3002<br>forms\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002<\/p>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/06\/26\/django-widget\/\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/24\/django-form\/\n\n\n\n<p>widget\u3067\u8907\u6570\u884c\u5165\u529b\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>from django import forms\n\n\nclass PostForm(forms.Form):\n    title = forms.CharField(max_length=30, label=&#39;\u30bf\u30a4\u30c8\u30eb&#39;)\n    content = forms.CharField(label=&#39;\u5185\u5bb9&#39;, widget=forms.Textarea())<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/h2>\n\n\n\n<p>Django\u306e\u5229\u70b9\u306f\u8868\u793a\u3059\u308bHTML\u306e\u5185\u5bb9\u3092\u3044\u308d\u3044\u308d\u64cd\u4f5c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<p>app\u30d5\u30a9\u30eb\u30c0\u306e\u4e0b\u306btemplates\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3001app\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3002<br>app\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e2d\u306bbase.html\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br>base.html\u306b\u306f\u30d8\u30c3\u30c0\u30fc\u3084\u30d5\u30c3\u30bf\u30fc\u3001\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u306a\u3069\u3069\u306ehtml\u30d5\u30a1\u30a4\u30eb\u306b\u3082\u540c\u3058\u3088\u3046\u306b\u8a18\u8f09\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3082\u306e\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u500b\u5225\u306ehtml\u30d5\u30a1\u30a4\u30eb\u3092\u4fee\u6b63\u3059\u308b\u3088\u308a\u4e00\u3064\u306b\u307e\u3068\u307e\u3063\u3066\u3044\u308b\u65b9\u304c\u4fee\u6b63\u304c\u7c21\u5358\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u30d6\u30e9\u30a6\u30b6\u306e\u30ec\u30a4\u30a2\u30a6\u30c8\u306fBootstrap\u3092\u4f7f\u3063\u3066\u898b\u305f\u76ee\u3092\u6574\u3048\u307e\u3059\u3002<br>base.html\u3067\u5168\u4f53\u306e\u67a0\u7d44\u307f\u3092\u4f5c\u308a\u3001{%block content%}\u306a\u3069\u306e\u500b\u5225\u60c5\u5831\u3092\u5165\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u30e6\u30fc\u30b6\u30fc\u306e\u30ed\u30b0\u30a4\u30f3\u72b6\u614b\u3092\u5224\u5b9a\u3059\u308b<\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>{% if user.is_authenticated %}<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">CSS\u306e\u9069\u7528<\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>&lt;link rel=&quot;stylesheet&quot; href=&quot;{% static &#39;css\/style.css&#39; %}&quot;&gt;<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">BASE.html<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u9759\u7684\u30d5\u30a1\u30a4\u30eb\u306e\u30ed\u30fc\u30c9<\/h4>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3067\u9759\u7684\u30d5\u30a1\u30a4\u30eb\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3001\u4ee5\u4e0b\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30bf\u30b0\u3092\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>{% load static %}<\/code><\/pre><\/div>\n\n\n\n<p>\u305d\u3057\u3066&lt;head>\u30bf\u30b0\u5185\u306b\u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8\u306e\u8aad\u307f\u8fbc\u307f\u306e\u8a18\u8ff0\u3092\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>&lt;link rel=&quot;stylesheet&quot; href=&quot;{% static &#39;css\/style.css&#39; %}&quot;&gt;<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box1\"><div class=\"kaisetsu-box1-title\">\u8a18\u4e8b\u4f5c\u6210\u65e5\u6642\u3068\u8457\u8005\u306e\u8a18\u8ff0<\/div>\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>     &lt;div class=&quot;card-footer text-muted&quot;&gt;\n                    {{ post.created|date }} by {{ post.author }}\n              &lt;\/div&gt;<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<p>\u753b\u50cf\u30fb\u8a73\u7d30\u30fb\u8457\u8005\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u5834\u5408\u8a18\u4e8b\u306b\u98db\u3076\u3088\u3046\u306b\u30ea\u30f3\u30af\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>&lt;a class=&quot;stretched-link&quot; href=&quot;{% url &#39;post_detail&#39; post.id %}&quot;&gt;&lt;\/a&gt;<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box5\"><div class=\"kaisetsu-box5-title\">\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30bf\u30b0<\/div>\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>{%\u3000url\u3000\u540d\u524d\u3000%}<\/code><\/pre><\/div>\n\n\n\n<p>{%%}\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30bf\u30b0\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u3067url\u3068\u3044\u3046\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30bf\u30b0\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002<br>\u3053\u3046\u3059\u308b\u3053\u3068\u3067urlspatterns\u3067\u6307\u5b9a\u3057\u305f\u540d\u524d\u306eURL\u304c\u66f8\u304d\u3060\u3055\u308c\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Bootstrap\u3092\u4f7f\u3046<\/h4>\n\n\n\n<p>\u8ab0\u3067\u3082\u7c21\u5358\u306b\u30c7\u30b6\u30a4\u30f3\u30da\u30fc\u30b8\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br>HTML\u306b&lt;link>\u30bf\u30b0\u30921\u3064\u8ffd\u52a0\u3059\u308b\u3060\u3051\u3067\u3059\u3002<\/p>\n\n\n\nhttp:\/\/www.agile-software.site\/2021\/04\/08\/bootstrap\/\n\n\n\n<h4 class=\"wp-block-heading\">\u30d5\u30c3\u30bf\u30fc<\/h4>\n\n\n\n<p>&amp;copy;\u306f\u300c\u00a9\u300d\u3068\u8868\u793a\u3055\u305b\u308b\u8a18\u8ff0\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"app\/templates\/app\/base.html\" data-lang=\"Python\"><code>{% load static %}\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=&quot;ja&quot;&gt;\n\n&lt;head&gt;\n    &lt;meta charset=&quot;UTF-8&quot;&gt;\n    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;\n    &lt;link rel=&quot;stylesheet&quot; href=&quot;https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.4.1\/css\/bootstrap.min.css&quot;&gt;\n    &lt;link rel=&quot;stylesheet&quot; href=&quot;{% static &#39;css\/style.css&#39; %}&quot;&gt;\n    &lt;title&gt;\u30d6\u30ed\u30b0\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb&lt;\/title&gt;\n&lt;\/head&gt;\n\n&lt;body&gt;\n    &lt;nav class=&quot;navbar navbar-expand-lg navbar-dark bg-dark&quot;&gt;\n        &lt;div class=&quot;container&quot;&gt;\n            &lt;a class=&quot;navbar-brand&quot; href=&quot;\/&quot;&gt;\u30d6\u30ed\u30b0&lt;\/a&gt;\n            &lt;ul class=&quot;navbar-nav ml-auto&quot;&gt;\n                &lt;li class=&quot;nav-item&quot;&gt;\n                    &lt;a class=&quot;nav-link&quot; href=&quot;\/&quot;&gt;\u30db\u30fc\u30e0&lt;\/a&gt;\n                &lt;\/li&gt;\n                {% if user.is_authenticated %}\n                    &lt;li class=&quot;nav-item&quot;&gt;\n                        &lt;a class=&quot;nav-link&quot; href=&quot;&quot;&gt;\u6295\u7a3f&lt;\/a&gt;\n                    &lt;\/li&gt;\n                    &lt;li class=&quot;nav-item&quot;&gt;\n                        &lt;a class=&quot;nav-link&quot; href=&quot;&quot;&gt;\u30ed\u30b0\u30a2\u30a6\u30c8&lt;\/a&gt;\n                    &lt;\/li&gt;\n                {% else %}\n                    &lt;li class=&quot;nav-item&quot;&gt;\n                        &lt;a class=&quot;nav-link&quot; href=&quot;&quot;&gt;\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7&lt;\/a&gt;\n                    &lt;\/li&gt;\n                    &lt;li class=&quot;nav-item&quot;&gt;\n                        &lt;a class=&quot;nav-link&quot; href=&quot;&quot;&gt;\u30ed\u30b0\u30a4\u30f3&lt;\/a&gt;\n                    &lt;\/li&gt;\n                {% endif %}\n            &lt;\/ul&gt;\n        &lt;\/div&gt;\n    &lt;\/nav&gt;\n\n    &lt;main&gt;\n        &lt;div class=&quot;container&quot;&gt;\n            {% block content %}\n            {% endblock %}\n        &lt;\/div&gt;   \n    &lt;\/main&gt;\n\n    &lt;footer class=&quot;py-2 bg-dark&quot;&gt;\n        &lt;p class=&quot;m-0 text-center text-white&quot;&gt;Copyright \u00a9 Django Startup 2020&lt;\/p&gt;\n    &lt;\/footer&gt;\n\n    {% block extra_js %}\n    {% endblock %}\n&lt;\/body&gt;\n\n&lt;\/html&gt;<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">index.html<\/h3>\n\n\n\n<p>\u52d5\u7684\u306b\u5909\u308f\u308b\u30a8\u30ea\u30a2\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br>1\u884c\u76ee\u306e{% extends &#8220;app\/base.html&#8221; %}\u306fbase.html\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u5185\u5bb9\u3092\u30d9\u30fc\u30b9\u306b\u5e83\u3052\u3066\u3044\u304f\u3068\u3044\u3046\u30a4\u30e1\u30fc\u30b8\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">base.html\u3068index.html\u306e\u9023\u643a<\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>{% extends &quot;app\/base.html&quot; %}<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">view\u304b\u3089\u6e21\u3055\u308c\u305f\u30c7\u30fc\u30bf\u306e\u53d6\u5f97<\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code> {% for post in post_data %}<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code> {% for post in post_data %}<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box5\"><div class=\"kaisetsu-box5-title\">\u5909\u6570\u306e\u57cb\u3081\u8fbc\u307f<\/div>\n<p>{{\u5909\u6570\u540d}}\u3068\u3044\u3046\u5f62\u3067\u5909\u6570\u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u306b\u57cb\u3081\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"app\/templates\/app\/index.html\" data-lang=\"Python\"><code>{% extends &quot;app\/base.html&quot; %}\n\n{% block content %}\n\n&lt;div class=&quot;row my-4&quot;&gt;\n    &lt;div class=&quot;col-md-8&quot;&gt;\n        {% for post in post_data %}\n            &lt;div class=&quot;card mb-4&quot;&gt;\n                &lt;div class=&quot;card-body&quot;&gt;\n                    &lt;h2 class=&quot;card-title&quot;&gt;{{ post.title }}&lt;\/h2&gt;\n                    &lt;p class=&quot;card-text&quot;&gt;{{ post.content|truncatechars:100 }}&lt;\/p&gt;\n                    &lt;div class=&quot;btn btn-warning&quot;&gt;\u8a73\u7d30&lt;\/div&gt;\n                &lt;\/div&gt;\n                &lt;div class=&quot;card-footer text-muted&quot;&gt;\n                    {{ post.created|date }} by {{ post.author }}\n                &lt;\/div&gt;\n                &lt;a class=&quot;stretched-link&quot; href=&quot;&quot;&gt;&lt;\/a&gt;\n            &lt;\/div&gt;\n        {% endfor %}\n    &lt;\/div&gt;\n\n    &lt;div class=&quot;col-md-4&quot;&gt;\n        &lt;div class=&quot;card&quot;&gt;\n            &lt;h5 class=&quot;card-header&quot;&gt;\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306b\u3064\u3044\u3066&lt;\/h5&gt;\n            &lt;div class=&quot;card-body&quot;&gt;\n                &lt;p&gt;\u30b9\u30c6\u30c3\u30d71&lt;\/p&gt;\n                &lt;p class=&quot;mb-0&quot;&gt;\n                    \u521d\u3081\u3066Django\u3092\u89e6\u308b\u65b9\u5411\u3051\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u3059\u3002\n                    \u6700\u5c0f\u9650\u306e\u6a5f\u80fd\u3092\u69cb\u7bc9\u3057\u3066Django\u3092\u5b66\u7fd2\u3057\u307e\u3057\u3087\u3046\u3002\n                &lt;\/p&gt;\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;\n\n{% endblock %}<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">post_form.html<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">csrf\u5bfe\u7b56\u306b\u3064\u3044\u3066<\/h4>\n\n\n\n<p>\u5916\u90e8\u304b\u3089\u30b5\u30a4\u30c8\u3078\u306e\u30d5\u30a9\u30fc\u30e0\u9001\u4fe1\u306a\u3069\u3092\u884c\u3046\u653b\u6483\u306b\u5bfe\u3057\u3066\u6b63\u3057\u304f\u30d5\u30a9\u30fc\u30e0\u304b\u3089\u9001\u4fe1\u3055\u308c\u305f\u30a2\u30af\u30bb\u30b9\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u4ed5\u7d44\u307f\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002<br>\u305d\u308c\u3092\u884c\u3063\u3066\u3044\u308b\u306e\u304c\u4e0b\u8a18\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30bf\u30b0\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>{% csrf_token %}<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>{% extends &quot;app\/base.html&quot; %}\n{% load widget_tweaks %}\n\n{% block content %}\n\n&lt;div class=&quot;my-4&quot;&gt;\n    &lt;h2&gt;\u6295\u7a3f&lt;\/h2&gt;\n&lt;\/div&gt;\n\n&lt;form method=&quot;post&quot; enctype=&quot;multipart\/form-data&quot;&gt;\n    {% csrf_token %}\n    &lt;div class=&quot;formpost&quot;&gt;\n        {% render_field form.title class=&quot;form-control&quot; placeholder=&quot;\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u529b&quot; %}\n    &lt;\/div&gt;\n    &lt;div class=&quot;formpost&quot;&gt;\n        {% render_field form.category class=&quot;form-control&quot; placeholder=&quot;\u30ab\u30c6\u30b4\u30ea\u3092\u5165\u529b&quot; %}\n    &lt;\/div&gt;\n    &lt;div class=&quot;formpost&quot;&gt;\n        {{ form.image }}\n    &lt;\/div&gt;\n    &lt;div class=&quot;formpost&quot;&gt;\n        {% render_field form.content class=&quot;form-control&quot; placeholder=&quot;\u672c\u6587\u3092\u5165\u529b&quot; %}\n    &lt;\/div&gt;\n    &lt;button class=&quot;btn btn-warning&quot; type=&quot;submit&quot;&gt;\u6295\u7a3f\u3059\u308b&lt;\/button&gt;\n&lt;\/form&gt;\n\n{% endblock %}<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">CSS<\/h2>\n\n\n\n<p>\u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8\u3092\u8a18\u8ff0\u3059\u308b\u969b\u306b\u306fstatic\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br>static\u30d5\u30a9\u30eb\u30c0\u5185\u306b\u306f\u9759\u7684\u30d5\u30a1\u30a4\u30eb\u3092\u5165\u308c\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>* {\n    margin: 0;\n    padding: 0;\n    box-sizing: border-box;\n}\n\nbody {\n    background: #F1F1F1;\n    display: flex;\n    flex-flow: column;\n    min-height: 100vh;\n}\n\nmain {\n    flex: 1;\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box1\"><div class=\"kaisetsu-box1-title\">\u30b5\u30a4\u30c9\u30d0\u30fc<\/div>\n<p>\u5404\u30ab\u30c6\u30b4\u30ea\u30fc\u306e\u4e0b\u306b\u30a2\u30f3\u30c0\u30fc\u30d0\u30fc\u3092\u8a2d\u5b9a<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/* \u30b5\u30a4\u30c9\u30d0\u30fc *\/\n.list-unstyled{\n    border-bottom: 2px #0bd solid;\n}<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u30dc\u30c3\u30af\u30b9\u306b\u5f71\u3092\u4ed8\u3051\u308b<\/h2>\n\n\n\n<p><strong>box-shadow<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\" data-line=\"<!-- wp:heading --&gt; <h2&gt;\u80cc\u666f\u8272<\/h2&gt; <!-- \/wp:heading --&gt;  <!-- wp:heading --&gt; <h2&gt;box-sizing<\/h2&gt; <!-- \/wp:heading --&gt;  <!-- wp:paragraph --&gt; <p&gt;width\u3068height\u306e\u7bc4\u56f2\u5185\u3067padding,border\u304c\u751f\u6210\u3055\u308c\u3066<\/p&gt; <!-- \/wp:paragraph --&gt;  <!-- wp:heading --&gt; <h2&gt;\u30dc\u30c3\u30af\u30b9\u306b\u5f71\u3092\u4ed8\u3051\u308b<\/h2&gt; <!-- \/wp:heading --&gt;  <!-- wp:paragraph --&gt; <p&gt;<strong&gt;box-shadow<\/strong&gt;<\/p&gt; <!-- \/wp:paragraph --&gt;  <!-- wp:loos-hcb\/code-block --&gt; <div class=&quot;hcb_wrap&quot;&gt;<pre class=&quot;prism line-numbers lang-plain&quot;&gt;<code&gt;box-shadow: none;  \/* offset-x | offset-y | blur-radius | spread-radius | color *\/ box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);<\/code&gt;<\/pre&gt;<\/div&gt; <!-- \/wp:loos-hcb\/code-block --&gt;\"><code>box-shadow: none;\n\n\/* offset-x | offset-y | blur-radius | spread-radius | color *\/\nbox-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);<\/code><\/pre><\/div>\n\n\n\n<p><a href=\"http:\/\/www.agile-software.site\/wp-admin\/edit.php?post_type=post\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">body<\/h3>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box1\"><div class=\"kaisetsu-box1-title\">body<\/div>\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>body {\n    background: #F1F1F1;\n    display: flex;\n    flex-flow: column;\n    min-height: 100vh;\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u80cc\u666f\u8272\u306f\u767d\u8272<br>\u6a2a\u4e26\u3073<br>flex-flow:column;\u3068\u3059\u308b\u3053\u3068\u3067flex-direction\u3092column\u3002\u3064\u307e\u308a\u7e26\u65b9\u5411\u306b\u30a2\u30a4\u30c6\u30e0\u3092\u4e26\u3079\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br>min-height:\u3067<\/p>\n<\/div>\n\n\n\n\n\n<h4 class=\"wp-block-heading\">main<\/h4>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box1\"><div class=\"kaisetsu-box1-title\">main<\/div>\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>main {\n    flex: 1;\n}<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">main<\/h3>\n\n\n\n<div class=\"wp-block-jin-gb-block-box-with-headline kaisetsu-box1\"><div class=\"kaisetsu-box1-title\"><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>2\u30ab\u30e9\u30e0\u30ec\u30a4\u30a2\u30a6\u30c8 2\u3064\u306e\u30ab\u30e9\u30e0\u3092\u4f7f\u3063\u3066\u69cb\u6210\u3055\u308c\u305f\u30ec\u30a4\u30a2\u30a6\u30c8\u304c2\u30ab\u30e9\u30e0\u306e\u30ec\u30a4\u30a2\u30a6\u30c8\u3067\u3059\u3002\u5e83\u3044\u5e45\u306e\u30ab\u30e9\u30e0\u306b\u30e1\u30a4\u30f3\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u7f6e\u304d\u3001\u72ed\u3044\u5e45\u306e\u30ab\u30e9\u30e0\u306b\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30e1\u30cb\u30e5\u30fc\u306a\u3069\u3092\u7f6e\u304d\u307e\u3059\u3002 \u30d5\u30ea\u30fc\u30ec\u30a4\u30a2\u30a6\u30c8 \u30de\u30eb\u30c1\u30ab\u30e9\u30e0\u30ec\u30a4\u30a2<\/p>\n","protected":false},"author":1,"featured_media":1413,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jin_ogp_image_url":"","_jin_last_featured_id":0,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-246","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-django"],"_links":{"self":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=246"}],"version-history":[{"count":44,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":1432,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/posts\/246\/revisions\/1432"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=\/wp\/v2\/media\/1413"}],"wp:attachment":[{"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agile-software.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}