{"id":23,"date":"2023-04-29T12:02:19","date_gmt":"2023-06-22T08:11:33","guid":{"rendered":"https:\/\/www.silicloud.com\/ja\/blog\/index.php\/2023\/11\/30\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/"},"modified":"2025-07-31T10:45:22","modified_gmt":"2025-07-31T01:45:22","slug":"%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/","title":{"rendered":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5"},"content":{"rendered":"<p>\u8457\u8005\u306f\u3001\u5bc4\u4ed8\u3092\u884c\u3046\u305f\u3081Write for Donations\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e00\u74b0\u3068\u3057\u3066COVID-19\u6551\u63f4\u57fa\u91d1\u3092\u9078\u3073\u307e\u3057\u305f\u3002<\/p>\n<h3>\u306f\u3058\u3081\u306b<\/h3>\n<p>Django\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u306f\u4fbf\u5229\u306a\u7d4c\u9a13\u306b\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u306a\u305c\u306a\u3089\u3001\u67d4\u8edf\u6027\u3068\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3092\u91cd\u8996\u3057\u3066\u69cb\u7bc9\u3055\u308c\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002\u3053\u306e\u8003\u3048\u65b9\u306f\u3001Django\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u91cd\u8996\u306e\u8a2d\u5b9a\u306b\u3082\u9069\u7528\u3055\u308c\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u672c\u756a\u74b0\u5883\u306b\u6e96\u5099\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u3055\u3089\u306b\u5b89\u5168\u306b\u3059\u308b\u65b9\u6cd5\u306f\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u8a2d\u5b9a\u3092\u5206\u5272\u3059\u308b\u3053\u3068\u3067\u3001\u74b0\u5883\u306b\u57fa\u3065\u304f\u7570\u306a\u308b\u69cb\u6210\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002.env\u3092\u5229\u7528\u3057\u3066\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3057\u305f\u308a\u3001\u6a5f\u5bc6\u6027\u306e\u9ad8\u3044\u8a2d\u5b9a\u3092\u96a0\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u3067\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u6f0f\u6d29\u3092\u9632\u304e\u307e\u3059\u3002\u307e\u305f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306eURL\u3084\u4ed6\u306e\u8a2d\u5b9a\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u3067\u3001\u4e00\u822c\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u8106\u5f31\u6027\u3092\u56de\u907f\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u6700\u521d\u306f\u3053\u308c\u3089\u306e\u6226\u7565\u3092\u5b9f\u65bd\u3059\u308b\u3053\u3068\u306f\u6642\u9593\u304c\u304b\u304b\u308b\u3088\u3046\u306b\u611f\u3058\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u3001\u5b9f\u7528\u7684\u306a\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u958b\u767a\u3059\u308b\u3053\u3068\u3067\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3084\u751f\u7523\u6027\u3092\u640d\u306a\u3046\u3053\u3068\u306a\u304f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30ea\u30ea\u30fc\u30b9\u3092\u5c55\u958b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u74b0\u5883\u30d9\u30fc\u30b9\u306e\u8a2d\u5b9a\u3001.env\u3001\u304a\u3088\u3073Django\u306e\u7d44\u307f\u8fbc\u307f\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3092\u5b9f\u88c5\u30fb\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3057\u3066\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u91cd\u8996\u306e\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u6d3b\u7528\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u6a5f\u80fd\u306f\u4e92\u3044\u3092\u88dc\u5b8c\u3057\u3001\u5c55\u958b\u306b\u304a\u3044\u3066\u53d6\u308b\u53ef\u80fd\u6027\u306e\u3042\u308b\u7570\u306a\u308b\u30a2\u30d7\u30ed\u30fc\u30c1\u306b\u5bfe\u5fdc\u3057\u305fDjango\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u5b8c\u6210\u3092\u3082\u305f\u3089\u3057\u307e\u3059\u3002<\/p>\n<h2>\u524d\u63d0\u6761\u4ef6<\/h2>\n<p>\u3053\u306e\u30ac\u30a4\u30c9\u3092\u59cb\u3081\u308b\u524d\u306b\u3001\u6b21\u306e\u3082\u306e\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>A pre-existing Django project. If you don\u2019t already have one set up, you can use our How To Install Django and Set Up a Development Environment tutorial for setup. In that tutorial, you\u2019ll use the testsite project from this tutorial as an example.For your Django project, you\u2019ll also need Python 3 installed. You can install it by following Step 1 of our tutorial, How To Install Python 3 and Set Up a Programming Environment on an Ubuntu 20.04 Server.<\/li>\n<li>A Let\u2019s Encrypt certificate. If you don\u2019t already have one set up, you can use our How To Secure Nginx with Let\u2019s Encrypt on Ubuntu 20.04 tutorial for setup.To use the Let\u2019s Encrypt certificate, you\u2019ll need Nginx installed. You can install it by following our tutorial How To Install Nginx on Ubuntu 20.04.<\/li>\n<li>This Django Development tutorial series is a great way to get familiar with Django\u2019s file structure and its core settings.<\/li>\n<\/ul>\n<div class=\"post-conf-note\">\n<p class=\"post-conf-desc\">Note<\/p>\n<div>\u6ce8\u610f\uff1a\u3082\u3057\u65e2\u5b58\u306eDjango\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u3001\u7570\u306a\u308b\u8981\u4ef6\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306f\u7279\u5b9a\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u3092\u63d0\u6848\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u5404\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u500b\u5225\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/div>\n<\/div>\n<h2>\u30b9\u30c6\u30c3\u30d71\uff1aDjango\u306e\u8a2d\u5b9a\u306e\u518d\u69cb\u7bc9<\/h2>\n<p>Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u78ba\u4fdd\u3059\u308b\u7d30\u90e8\u306b\u5165\u308b\u524d\u306b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3057\u3066\u4eee\u60f3\u74b0\u5883\u3092\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token builtin class-name\">cd<\/span> django-apps<\/li>\n<li data-prefix=\"$\"><span class=\"token builtin class-name\">.<\/span> env\/bin\/activate<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u3053\u306e\u6700\u521d\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306f\u3001settings.py\u30d5\u30a1\u30a4\u30eb\u3092\u74b0\u5883\u56fa\u6709\u306e\u8a2d\u5b9a\u306b\u518d\u914d\u7f6e\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u4f8b\u3048\u3070\u958b\u767a\u74b0\u5883\u3068\u672c\u756a\u74b0\u5883\u306e\u3088\u3046\u306b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u7570\u306a\u308b\u74b0\u5883\u9593\u3067\u79fb\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306b\u4fbf\u5229\u306a\u624b\u6cd5\u3067\u3059\u3002\u3053\u306e\u914d\u7f6e\u306b\u3088\u308a\u3001\u7570\u306a\u308b\u74b0\u5883\u3067\u306e\u518d\u8a2d\u5b9a\u304c\u5c11\u306a\u304f\u306a\u308a\u307e\u3059\u3002\u4ee3\u308f\u308a\u306b\u3001\u5f8c\u8ff0\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u8aac\u660e\u3055\u308c\u308b\u3088\u3046\u306b\u3001\u74b0\u5883\u5909\u6570\u3092\u4f7f\u7528\u3057\u3066\u8a2d\u5b9a\u3092\u5207\u308a\u66ff\u3048\u307e\u3059\u3002<\/p>\n<p>\u3042\u306a\u305f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3001settings\u3068\u3044\u3046\u65b0\u3057\u3044\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">mkdir<\/span> <mark>testsite<\/mark>\/<mark>testsite<\/mark>\/settings<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\uff08\u524d\u63d0\u3068\u3057\u3066\u3001\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u3053\u306b\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u540d\u524d\u3092\u4ee3\u66ff\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\uff09<\/p>\n<p>\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3001\u73fe\u5728\u306esettings.py\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002\u74b0\u5883\u306b\u57fa\u3065\u304f\u8a2d\u5b9a\u306f\u3001\u3053\u306e\u30d5\u30a9\u30eb\u30c0\u306b\u542b\u307e\u308c\u308b\u5225\u3005\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u8a18\u8ff0\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u65b0\u3057\u3044\u8a2d\u5b9a\u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u3066\u3001Python\u306e\u30d5\u30a1\u30a4\u30eb\u30923\u3064\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token builtin class-name\">cd<\/span> <mark>testsite<\/mark>\/<mark>testsite<\/mark>\/settings<\/li>\n<li data-prefix=\"$\"><span class=\"token function\">touch<\/span> base.py development.py production.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>development.py\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u901a\u5e38\u958b\u767a\u4e2d\u306b\u4f7f\u7528\u3059\u308b\u8a2d\u5b9a\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u307e\u305f\u3001production.py\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u672c\u756a\u30b5\u30fc\u30d0\u30fc\u3067\u4f7f\u7528\u3059\u308b\u8a2d\u5b9a\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u3053\u308c\u3089\u3092\u5206\u3051\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u306a\u305c\u306a\u3089\u3001\u672c\u756a\u74b0\u5883\u306e\u8a2d\u5b9a\u306b\u306f\u958b\u767a\u74b0\u5883\u3067\u306f\u6a5f\u80fd\u3057\u306a\u3044\u8a2d\u5b9a\u304c\u542b\u307e\u308c\u308b\u304b\u3089\u3067\u3059\u3002\u4f8b\u3048\u3070\u3001HTTPS\u306e\u5f37\u5236\u3001\u30d8\u30c3\u30c0\u30fc\u306e\u8ffd\u52a0\u3001\u305d\u3057\u3066\u672c\u756a\u7528\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u4f7f\u7528\u306a\u3069\u3067\u3059\u3002<\/p>\n<p>base.py\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u3001development.py\u3068production.py\u304c\u7d99\u627f\u3059\u308b\u8a2d\u5b9a\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u5197\u9577\u6027\u3092\u6e1b\u3089\u3057\u3001\u30b3\u30fc\u30c9\u3092\u3088\u308a\u7dba\u9e97\u306b\u4fdd\u3064\u305f\u3081\u3067\u3059\u3002\u3053\u308c\u3089\u306ePython\u30d5\u30a1\u30a4\u30eb\u306fsettings.py\u3092\u7f6e\u304d\u63db\u3048\u308b\u305f\u3081\u3001Django\u3092\u6df7\u4e71\u3055\u305b\u306a\u3044\u3088\u3046\u306bsettings.py\u3092\u524a\u9664\u3057\u307e\u3059\u3002<\/p>\n<p>\u307e\u3060\u8a2d\u5b9a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306b\u3044\u308b\u9593\u306b\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066settings.py\u3092base.py\u306b\u540d\u524d\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">mv<\/span> <span class=\"token punctuation\">..<\/span>\/settings.py base.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u65b0\u3057\u3044\u74b0\u5883\u8a2d\u5b9a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30a2\u30a6\u30c8\u30e9\u30a4\u30f3\u3092\u5b8c\u6210\u3055\u305b\u307e\u3057\u305f\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u307e\u3060\u65b0\u3057\u3044\u8a2d\u5b9a\u3092\u7406\u89e3\u3067\u304d\u307e\u305b\u3093\u306e\u3067\u3001\u6b21\u306f\u3053\u308c\u3092\u4fee\u6b63\u3057\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d72\uff1adjango-environ\u3092\u4f7f\u7528\u3059\u308b<\/h2>\n<p>\u73fe\u5728\u3001Django\u306f\u65b0\u3057\u3044\u8a2d\u5b9a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3084\u305d\u306e\u5185\u90e8\u30d5\u30a1\u30a4\u30eb\u3092\u8a8d\u8b58\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u3057\u305f\u304c\u3063\u3066\u3001\u74b0\u5883\u306b\u57fa\u3065\u304f\u8a2d\u5b9a\u3067\u4f5c\u696d\u3092\u7d9a\u3051\u308b\u524d\u306b\u3001Django\u3092django-environ\u3068\u9023\u643a\u3055\u305b\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u74b0\u5883\u5909\u6570\u3092.env\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8aad\u307f\u8fbc\u3080\u4f9d\u5b58\u95a2\u4fc2\u3067\u3059\u3002\u3064\u307e\u308a\u3001Django\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e.env\u30d5\u30a1\u30a4\u30eb\u3092\u53c2\u7167\u3057\u3001\u3069\u306e\u8a2d\u5b9a\u69cb\u6210\u3092\u4f7f\u7528\u3059\u308b\u304b\u3092\u6c7a\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3057\u3066\u3001\u305d\u306e\u5f8cls\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5185\u5bb9\u3092\u30ea\u30b9\u30c8\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token builtin class-name\">cd<\/span> <span class=\"token punctuation\">..<\/span>\/<span class=\"token punctuation\">..<\/span>\/<\/li>\n<li data-prefix=\"$\"><span class=\"token function\">ls<\/span><\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u3042\u306a\u305f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308b\u3079\u304d\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<div class=\"secondary-code-label\" title=\"Output\">Output<\/div>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>db.sqlite3 manage.py testsite<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>django-environ\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<\/p>\n<p>Note: The response provided is a translation of the given English sentence into Japanese.<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\">pip <span class=\"token function\">install<\/span> django-environ<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u73fe\u5728\u3001Django\u306e\u8a2d\u5b9a\u3092.env\u3092\u4f7f\u3046\u3088\u3046\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3092\u884c\u3046\u305f\u3081\u306b\u306f\u3001\u958b\u767a\u7528\u306emanage.py\u3068\u3001\u672c\u756a\u7528\u306ewsgi.py\u306e2\u3064\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u307e\u3059\u3002<\/p>\n<p>\u6700\u521d\u306b\u3001nano\u307e\u305f\u306f\u304a\u597d\u304d\u306a\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf\u3092\u4f7f\u7528\u3057\u3066\u3001manage.py\u3092\u7de8\u96c6\u3059\u308b\u305f\u3081\u306b\u958b\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> manage.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u4ee5\u4e0b\u306e\u30cf\u30a4\u30e9\u30a4\u30c8\u3055\u308c\u305f\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u306e\u7ba1\u7406\u3092\u62c5\u5f53\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u3001manage.py\u3067\u3059\u3002<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">import<\/span> os\r\n<span class=\"token keyword\">import<\/span> sys\r\n<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token keyword\">import<\/span> environ\r\n\r\nenviron<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">.<\/span>read_env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span>\r\n\r\n<span class=\"token keyword\">def<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n    os<span class=\"token punctuation\">.<\/span>environ<span class=\"token punctuation\">.<\/span>setdefault<span class=\"token punctuation\">(<\/span><span class=\"token string\">'DJANGO_SETTINGS_MODULE'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'testsite.settings'<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\n    <span class=\"token keyword\">try<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>core<span class=\"token punctuation\">.<\/span>management <span class=\"token keyword\">import<\/span> execute_from_command_line\r\n    <span class=\"token keyword\">except<\/span> ImportError <span class=\"token keyword\">as<\/span> exc<span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token keyword\">raise<\/span> ImportError<span class=\"token punctuation\">(<\/span>\r\n            <span class=\"token string\">\"Couldn't import Django. Are you sure it's installed and \"<\/span>\r\n            <span class=\"token string\">\"available on your PYTHONPATH environment variable? Did you \"<\/span>\r\n            <span class=\"token string\">\"forget to activate a virtual environment?\"<\/span>\r\n        <span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">from<\/span> exc\r\n    execute_from_command_line<span class=\"token punctuation\">(<\/span>sys<span class=\"token punctuation\">.<\/span>argv<span class=\"token punctuation\">)<\/span>\r\n\r\n\r\n<span class=\"token keyword\">if<\/span> __name__ <span class=\"token operator\">==<\/span> <span class=\"token string\">'__main__'<\/span><span class=\"token punctuation\">:<\/span>\r\n    main<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n<\/code><\/pre>\n<p>CTRL+X\u3092\u62bc\u3057\u3066manage.py\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u3001Y\u3092\u62bc\u3057\u3066\u4fdd\u5b58\u3057\u3001ENTER\u3092\u62bc\u3057\u3066\u9589\u3058\u308b\u3002<\/p>\n<p>\u6b21\u306b\u3001\u7de8\u96c6\u3059\u308b\u305f\u3081\u306bwsgi.py\u3092\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> <mark>testsite<\/mark>\/wsgi.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u4ee5\u4e0b\u306e\u30cf\u30a4\u30e9\u30a4\u30c8\u3055\u308c\u305f\u884c\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/wsgi.py\u306e\u6587\u3092\u65e5\u672c\u8a9e\u3067\u8a00\u3044\u63db\u3048\u308b\u3068\u3001\u300c\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/wsgi.py\u300d\u3068\u306a\u308a\u307e\u3059\u3002<\/div>\n<pre class=\"post-pre\"><code>\r\n<span class=\"token keyword\">import<\/span> os\r\n<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token keyword\">import<\/span> environ\r\n\r\nenviron<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">.<\/span>read_env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span>\r\n\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>core<span class=\"token punctuation\">.<\/span>wsgi <span class=\"token keyword\">import<\/span> get_wsgi_application\r\n\r\nos<span class=\"token punctuation\">.<\/span>environ<span class=\"token punctuation\">.<\/span>setdefault<span class=\"token punctuation\">(<\/span><span class=\"token string\">'DJANGO_SETTINGS_MODULE'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'testsite.settings'<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\napplication <span class=\"token operator\">=<\/span> get_wsgi_application<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n<\/code><\/pre>\n<p>CTRL+X\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u3001Y\u3092\u62bc\u3057\u3066\u4fdd\u5b58\u3057\u3001\u305d\u3057\u3066ENTER\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u3053\u308c\u3089\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3057\u305f\u30b3\u30fc\u30c9\u306f2\u3064\u306e\u3053\u3068\u3092\u884c\u3044\u307e\u3059\u3002\u307e\u305a\u6700\u521d\u306b\u3001Django\u304c\u5b9f\u884c\u3055\u308c\u308b\u305f\u3073\u306b\uff08\u958b\u767a\u74b0\u5883\u3067\u306fmanage.py\u3001\u672c\u756a\u74b0\u5883\u3067\u306fwsgi.py\uff09\u3001.env\u30d5\u30a1\u30a4\u30eb\u3092\u63a2\u3059\u3088\u3046\u306b\u6307\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u3082\u3057\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308c\u3070\u3001.env\u304c\u63a8\u5968\u3059\u308b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3088\u3046Django\u306b\u6307\u793a\u3057\u307e\u3059\u3002\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u958b\u767a\u8a2d\u5b9a\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<p>\u6700\u5f8c\u306b\u3001\u73fe\u5728\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b.env\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> .env<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u6b21\u306b\u3001\u4ee5\u4e0b\u306e\u884c\u3092\u8ffd\u52a0\u3057\u3066\u74b0\u5883\u3092\u958b\u767a\u30e2\u30fc\u30c9\u306b\u8a2d\u5b9a\u3057\u307e\u3059\u3002 (Tsugi ni, ikkou no gyou o tsuika shite kankyou o kaihatsu m\u014ddo ni settei shimasu.)<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u306e.env\u30d5\u30a1\u30a4\u30eb<\/div>\n<pre class=\"post-pre\"><code>DJANGO_SETTINGS_MODULE=\"<mark>testsite<\/mark>.settings.development\"\r\n<\/code><\/pre>\n<p>\u300cCTRL+X\u300d\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u308b\u305f\u3081\u306b\u3001\u300cY\u300d\u3092\u62bc\u3057\u3066\u4fdd\u5b58\u3057\u3001\u305d\u3057\u3066\u300cENTER\u300d\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div class=\"post-conf-note\">\n<p class=\"post-conf-desc\">Note<\/p>\n<div>\u6ce8\u610f\uff1a.env\u30d5\u30a1\u30a4\u30eb\u3092.gitignore\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30b3\u30df\u30c3\u30c8\u306b\u542b\u307e\u308c\u306a\u3044\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u516c\u306b\u8868\u793a\u3057\u305f\u304f\u306a\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\u3084API\u30ad\u30fc\u306a\u3069\u306e\u30c7\u30fc\u30bf\u3092\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u683c\u7d0d\u3057\u307e\u3059\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u5b9f\u884c\u3055\u308c\u308b\u74b0\u5883\u3054\u3068\u306b\u3001\u305d\u306e\u7279\u5b9a\u306e\u74b0\u5883\u306e\u8a2d\u5b9a\u3092\u542b\u3093\u3060\u72ec\u81ea\u306e.env\u30d5\u30a1\u30a4\u30eb\u304c\u5fc5\u8981\u3067\u3059\u3002<br \/>\n\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u542b\u3081\u308b\u305f\u3081\u306b\u3001.env.example\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059\u3002\u305d\u3046\u3059\u308b\u3053\u3068\u3067\u3001\u5fc5\u8981\u306a\u5834\u6240\u3067\u7c21\u5358\u306b\u65b0\u3057\u3044.env\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/div>\n<\/div>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u3001Django\u306ftestsite.settings.development\u3092\u4f7f\u7528\u3057\u307e\u3059\u304c\u3001DJANGO_SETTINGS_MODULE\u3092\u4f8b\u3048\u3070testsite.settings.production\u306b\u5909\u66f4\u3059\u308b\u3068\u3001\u672c\u756a\u74b0\u5883\u306e\u8a2d\u5b9a\u304c\u4f7f\u7528\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306b\u3001development.py\u3068production.py\u306e\u8a2d\u5b9a\u3092\u57cb\u3081\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d73-\u958b\u767a\u304a\u3088\u3073\u88fd\u9020\u306e\u8a2d\u5b9a\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/h2>\n<p>\u6b21\u306b\u3001base.py\u3092\u958b\u304d\u3001\u958b\u767a\u7528\u306edevelopment.py\u3068\u672c\u756a\u7528\u306eproduction.py\u306e\u5225\u3005\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u5404\u74b0\u5883\u3067\u5909\u66f4\u3057\u305f\u3044\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002production.py\u3067\u306f\u3001\u672c\u756a\u7528\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a8d\u8a3c\u60c5\u5831\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u305d\u308c\u3092\u7528\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div class=\"post-conf-note\">\n<p class=\"post-conf-desc\">Note<\/p>\n<div>\u6ce8\u610f: \u74b0\u5883\u306b\u57fa\u3065\u3044\u3066\u5fc5\u8981\u306a\u8a2d\u5b9a\u3092\u6c7a\u5b9a\u3059\u308b\u306e\u306f\u3042\u306a\u305f\u6b21\u7b2c\u3067\u3059\u3002\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u672c\u756a\u74b0\u5883\u3068\u958b\u767a\u74b0\u5883\u306e\u4e00\u822c\u7684\u306a\u4f8b\uff08\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3068\u5225\u500b\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a2d\u5b9a\uff09\u306b\u3064\u3044\u3066\u306e\u307f\u8aac\u660e\u3057\u307e\u3059\u3002<\/div>\n<\/div>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u524d\u63d0\u3068\u306a\u308b\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u4f7f\u7528\u3057\u305fDjango\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f8b\u3068\u3057\u3066\u4f7f\u7528\u3057\u307e\u3059\u3002base.py\u304b\u3089settings\u3092development.py\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002\u307e\u305a\u3001development.py\u3092\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> <mark>testsite<\/mark>\/settings\/development.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u6b21\u306b\u3001\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308btestsite\/testsite\/settings\/development.py\u3092\u65e5\u672c\u8a9e\u3067\u8a00\u3044\u63db\u3048\u308b\u3002\u300c\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u300d\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308b\u300ctestsite\/testsite\/settings\/development.py\u300d<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">import<\/span> os\r\n<span class=\"token keyword\">from<\/span> <span class=\"token punctuation\">.<\/span>base <span class=\"token keyword\">import<\/span> <span class=\"token operator\">*<\/span>\r\n\r\nDEBUG <span class=\"token operator\">=<\/span> <span class=\"token boolean\">True<\/span>\r\n\r\nDATABASES <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token string\">'default'<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token string\">'ENGINE'<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">'django.db.backends.sqlite3'<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'NAME'<\/span><span class=\"token punctuation\">:<\/span> os<span class=\"token punctuation\">.<\/span>path<span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>BASE_DIR<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'db.sqlite3'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<p>CTRL+X\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3001Y\u3092\u62bc\u3057\u3066\u4fdd\u5b58\u3057\u3001ENTER\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u9589\u3058\u307e\u3059\u3002<br \/>\n&#8211; CTRL+X\u3092\u62bc\u3057\u3001Y\u3092\u62bc\u3057\u3066\u4fdd\u5b58\u3057\u3001ENTER\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u9589\u3058\u307e\u3059\u3002<\/p>\n<p>\u6700\u521d\u306b\u3001base.py\u304b\u3089\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u306f\u3001base.py\u304b\u3089\u8a2d\u5b9a\u3092\u7d99\u627f\u3057\u307e\u3059\u3002\u305d\u306e\u5f8c\u3001\u958b\u767a\u74b0\u5883\u3067\u5909\u66f4\u3057\u305f\u3044\u8a2d\u5b9a\u3092\u8ee2\u9001\u3057\u307e\u3059\u3002\u3053\u306e\u5834\u5408\u3001\u958b\u767a\u306b\u7279\u6709\u306e\u8a2d\u5b9a\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1aDEBUG\u306f\u958b\u767a\u3067\u306fTrue\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u672c\u756a\u74b0\u5883\u3067\u306f\u4e0d\u8981\u3067\u3059\u3002\u307e\u305f\u3001DATABASES\u306f\u672c\u756a\u7528\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306f\u306a\u304f\u3001\u958b\u767a\u7528\u306e\u30ed\u30fc\u30ab\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u306fSQLite\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u958b\u767a\u306b\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<div class=\"post-conf-note\">\n<p class=\"post-conf-desc\">Note<\/p>\n<div>\u6ce8\u610f\uff1a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\u3001Django\u306eDEBUG\u51fa\u529b\u306b\u306f\u3001API\u3001KEY\u3001PASS\u3001SECRET\u3001SIGNATURE\u3001\u307e\u305f\u306fTOKEN\u3068\u3044\u3046\u6587\u5b57\u5217\u3092\u542b\u3080\u53ef\u80fd\u6027\u306e\u3042\u308b\u8a2d\u5b9a\u306f\u8868\u793a\u3055\u308c\u307e\u305b\u3093\u3002<br \/>\n\u3053\u308c\u306f\u3001DEBUG\u304c\u307e\u3060\u6709\u52b9\u306a\u72b6\u614b\u3067\u8aa4\u3063\u3066\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u672c\u756a\u74b0\u5883\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u305f\u5834\u5408\u306b\u3001\u79d8\u5bc6\u304c\u660e\u3089\u304b\u306b\u3055\u308c\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3067\u3059\u3002<br \/>\n\u305d\u308c\u306b\u3088\u3063\u3066\u3001DEBUG\u3092\u6709\u52b9\u306b\u3057\u305f\u307e\u307e\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u516c\u958b\u7684\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002\u305d\u308c\u306f\u5e38\u306b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5371\u967a\u306b\u3055\u3089\u3059\u3060\u3051\u3067\u3059\u3002<\/div>\n<\/div>\n<p>\u6b21\u306b\u3001production.py \u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> <mark>testsite<\/mark>\/settings\/production.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u6b21\u306b\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001development.py\u3068\u4f3c\u305f\u3088\u3046\u306a\u3082\u306e\u306b\u306a\u308a\u307e\u3059\u304c\u3001\u7570\u306a\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a2d\u5b9a\u3084DEBUG\u306e\u5024\u306fFalse\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/\u8a2d\u5b9a\/\u672c\u756a\u74b0\u5883.py<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">import<\/span> os\r\n<span class=\"token keyword\">from<\/span> <span class=\"token punctuation\">.<\/span>base <span class=\"token keyword\">import<\/span> <span class=\"token operator\">*<\/span>\r\n<span class=\"token keyword\">import<\/span> environ\r\n\r\nenv <span class=\"token operator\">=<\/span> environ<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\nenviron<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">.<\/span>read_env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\nDEBUG <span class=\"token operator\">=<\/span> <span class=\"token boolean\">False<\/span>\r\n\r\nALLOWED_HOSTS <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span>\r\n\r\nDATABASES <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token string\">'default'<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token string\">'ENGINE'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_ENGINE'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'django.db.backends.sqlite3'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'NAME'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_DATABASE'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span>os<span class=\"token punctuation\">.<\/span>path<span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>BASE_DIR<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'db.sqlite3'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'USER'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_USER'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'user'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'PASSWORD'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_PASSWORD'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'password'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'HOST'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_HOST'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'localhost'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'PORT'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_PORT'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">''<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<p>\u300cCTRL+X\u300d\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3001\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306b\u300cY\u300d\u3092\u62bc\u3057\u3001\u3055\u3089\u306b\u300cENTER\u300d\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u9589\u3058\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u4e0e\u3048\u3089\u308c\u305f\u4f8b\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a2d\u5b9a\u306b\u5bfe\u3057\u3066\u3001\u5404\u8a8d\u8a3c\u60c5\u5831\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\u306f.env\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3082\u542b\u307e\u308c\u307e\u3059\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u672c\u756a\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u305f\u3081\u306b\u65e2\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u63d0\u4f9b\u3055\u308c\u305f\u4f8b\u3067\u306f\u306a\u304f\u3001\u72ec\u81ea\u306e\u8a2d\u5b9a\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u4eca\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092.env\u306eDjango settings\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u57fa\u3065\u3044\u3066\u7570\u306a\u308b\u8a2d\u5b9a\u3067\u69cb\u6210\u3057\u307e\u3057\u305f\u3002\u4f7f\u7528\u3057\u3066\u3044\u308b\u8a2d\u5b9a\u306e\u4f8b\u306b\u57fa\u3065\u304f\u3068\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u672c\u756a\u8a2d\u5b9a\u306b\u3059\u308b\u3068\u3001DEBUG\u306fFalse\u306b\u306a\u308a\u3001ALLOWED_HOSTS\u304c\u5b9a\u7fa9\u3055\u308c\u3001\u3059\u3067\u306b\u30b5\u30fc\u30d0\u30fc\u3067\u69cb\u6210\u6e08\u307f\u306e\u5225\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f7f\u7528\u3057\u59cb\u3081\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d74 \u30fc Django\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3092\u4f7f\u7528\u3059\u308b<\/h2>\n<p>Django\u306b\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3059\u308b\u6e96\u5099\u306e\u3067\u304d\u305f\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306f\u3001\u516c\u958b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u3068\u3063\u3066\u5fc5\u8981\u4e0d\u53ef\u6b20\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u4e00\u822c\u306b\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u610f\u56f3\u3057\u3066\u3044\u307e\u3059\u3002\u958b\u767a\u74b0\u5883\u3067\u306f\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u306e\u4f7f\u7528\u306f\u63a8\u5968\u3055\u308c\u307e\u305b\u3093\u3002\u3057\u305f\u304c\u3063\u3066\u3001\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u3092production.py\u306e\u69cb\u6210\u306b\u5236\u9650\u3057\u307e\u3059\u3002<\/p>\n<p>\u5927\u90e8\u5206\u306e\u5834\u5408\u3001\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u306f\u30bb\u30c3\u30b7\u30e7\u30f3\u30af\u30c3\u30ad\u30fc\u3001CSRF\u30af\u30c3\u30ad\u30fc\u3001HTTP\u304b\u3089HTTPS\u3078\u306e\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u30a6\u30a7\u30d6\u6a5f\u80fd\u306b\u304a\u3044\u3066HTTPS\u306e\u4f7f\u7528\u3092\u5f37\u5236\u3057\u307e\u3059\u3002\u3057\u305f\u304c\u3063\u3066\u3001\u3059\u3067\u306b\u30c9\u30e1\u30a4\u30f3\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u30b5\u30fc\u30d0\u30fc\u3092\u6301\u3063\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u4eca\u306e\u3068\u3053\u308d\u30b9\u30ad\u30c3\u30d7\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30c7\u30d7\u30ed\u30a4\u6e96\u5099\u306e\u305f\u3081\u306b\u30b5\u30fc\u30d0\u30fc\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u3053\u306e\u4ef6\u306b\u95a2\u3057\u3066\u306f\u304a\u3059\u3059\u3081\u306e\u8a18\u4e8b\u3092\u300c\u7d50\u8ad6\u300d\u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u6700\u521d\u306bproduction.py\u3092\u958b\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> <mark>testsite<\/mark>\/settings\/production.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u3042\u306a\u305f\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u3001\u30b3\u30fc\u30c9\u306e\u8aac\u660e\u306b\u5f93\u3063\u3066\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u9069\u3057\u305f\u30cf\u30a4\u30e9\u30a4\u30c8\u3055\u308c\u305f\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/\u8a2d\u5b9a\/\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3.py<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">import<\/span> os\r\n<span class=\"token keyword\">from<\/span> <span class=\"token punctuation\">.<\/span>base <span class=\"token keyword\">import<\/span> <span class=\"token operator\">*<\/span>\r\n<span class=\"token keyword\">import<\/span> environ\r\n\r\nenv <span class=\"token operator\">=<\/span> environ<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\nenviron<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">.<\/span>read_env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\nDEBUG <span class=\"token operator\">=<\/span> <span class=\"token boolean\">False<\/span>\r\n\r\nALLOWED_HOSTS <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">'<mark>your_domain<\/mark>'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'<mark>www.your_domain<\/mark>'<\/span><span class=\"token punctuation\">]<\/span>\r\n\r\nDATABASES <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token string\">'default'<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token string\">'ENGINE'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_ENGINE'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'django.db.backends.sqlite3'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'NAME'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_DATABASE'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span>os<span class=\"token punctuation\">.<\/span>path<span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>BASE_DIR<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'db.sqlite3'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'USER'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_USER'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'user'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'PASSWORD'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_PASSWORD'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'password'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'HOST'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_HOST'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">'localhost'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n        <span class=\"token string\">'PORT'<\/span><span class=\"token punctuation\">:<\/span> env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SQL_PORT'<\/span><span class=\"token punctuation\">,<\/span> default<span class=\"token operator\">=<\/span><span class=\"token string\">''<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<mark>SECURE_SSL_REDIRECT <span class=\"token operator\">=<\/span> <span class=\"token boolean\">True<\/span><\/mark>\r\n\r\n<mark>SESSION_COOKIE_SECURE <span class=\"token operator\">=<\/span> <span class=\"token boolean\">True<\/span><\/mark>\r\n\r\n<mark>CSRF_COOKIE_SECURE <span class=\"token operator\">=<\/span> <span class=\"token boolean\">True<\/span><\/mark>\r\n\r\n<mark>SECURE_BROWSER_XSS_FILTER <span class=\"token operator\">=<\/span> <span class=\"token boolean\">True<\/span><\/mark>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\n<li>ALLOWED_HOSTS is a list of strings that represent the host\/domain names that your project can serve. This is a security measure to prevent an attacker from poisoning caches and DNS. Find more details about ALLOWED_HOSTS in the Django documentation.<\/li>\n<li>SECURE_SSL_REDIRECT redirects all HTTP requests to HTTPS (unless exempt). This means your project will always try to use an encrypted connection. You will need to have SSL configured on your server for this to work. Note that if you have Nginx or Apache configured to do this already, this setting will be redundant.<\/li>\n<li>SESSION_COOKIE_SECURE tells the browser that cookies can only be handled over HTTPS. This means cookies your project produces for activities, such as logins, will only work over an encrypted connection.<\/li>\n<li>CSRF_COOKIE_SECURE is the same as SESSION_COOKIE_SECURE but applies to your CSRF token. CSRF tokens protect against cross-site request forgery. Django CSRF protection does this by ensuring any forms submitted (for logins, signups, and so on) to your project were created by your project and not a third party.<\/li>\n<li>SECURE_BROWSER_XSS_FILTER sets the X-XSS-Protection: 1; mode=block header on all responses that do not already have it. This ensures third parties cannot inject scripts into your project. For example, if a user stores a script in your database using a public field, when that script is retrieved and displayed to other users it will not run.<\/li>\n<\/ul>\n<p>\u300cCTRL+X\u300d\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u3001\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306b\u300cY\u300d\u3092\u62bc\u3057\u3001\u305d\u308c\u304b\u3089\u300cENTER\u300d\u3092\u62bc\u3057\u3066\u9589\u3058\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u3082\u3057Django\u306e\u7570\u306a\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u3082\u3063\u3068\u8a73\u3057\u304f\u77e5\u308a\u305f\u3044\u5834\u5408\u306f\u3001\u5f7c\u3089\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div class=\"post-conf-warning\">\n<p class=\"post-conf-desc\">Warning<\/p>\n<div>\u6ce8\u610f\uff1aDjango\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u306f\u3001\u300cSECURE_BROWSER_XSS_FILTER\u306b\u5b8c\u5168\u306b\u4f9d\u5b58\u3059\u3079\u304d\u3067\u306f\u306a\u3044\u300d\u3068\u8a18\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5165\u529b\u3092\u691c\u8a3c\u3057\u3001\u9069\u5207\u306b\u30b5\u30cb\u30bf\u30a4\u30ba\u3059\u308b\u3053\u3068\u3092\u5fd8\u308c\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002<\/div>\n<\/div>\n<h3>\u8ffd\u52a0\u306e\u8a2d\u5b9a<\/h3>\n<p>\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u306f\u3001HTTP Strict Transport Security\uff08HSTS\uff09\u306e\u30b5\u30dd\u30fc\u30c8\u7528\u3067\u3059\u3002\u3064\u307e\u308a\u3001\u5e38\u306bSSL\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u3001\u5168\u3066\u306e\u30b5\u30a4\u30c8\u304cSSL\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>SECURE_HSTS_SECONDS is the amount of time in seconds HSTS is set for. If you set this for an hour (in seconds), every time you visit a web page on your website, it tells your browser that for the next hour HTTPS is the only way you can visit the site. If during that hour you visit an insecure part of your website, the browser will show an error and the insecure page will be inaccessible.<\/li>\n<li>SECURE_HSTS_PRELOAD only works if SECURE_HSTS_SECONDS is set. This header instructs the browser to preload your site. This means that your website will be added to a hard-coded list, which is implemented in popular browsers, like Firefox and Chrome. This requires that your website is always encrypted. It is important to be careful with this header. If at anytime you decide not to use encryption for your project, it can take weeks to be manually removed from the HSTS preload list.<\/li>\n<li>SECURE_HSTS_INCLUDE_SUBDOMAINS applies the HSTS header to all subdomains. Enabling this header means that both your_domain and unsecure.your_domain will require encryption, even if unsecure.your_domain is not related to this Django project.<\/li>\n<\/ul>\n<div class=\"post-conf-warning\">\n<p class=\"post-conf-desc\">Warning<\/p>\n<div>\u8b66\u544a\uff1a\u3053\u308c\u3089\u306e\u8ffd\u52a0\u8a2d\u5b9a\u3092\u8aa4\u3063\u3066\u69cb\u6210\u3059\u308b\u3068\u3001\u30b5\u30a4\u30c8\u304c\u9577\u6642\u9593\u306b\u308f\u305f\u308a\u58ca\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\n\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u3092\u5b9f\u88c5\u3059\u308b\u524d\u306b\u3001Django\u306eHSTS\u306b\u95a2\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u5fc5\u305a\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002<\/div>\n<\/div>\n<p>\u81ea\u5206\u81ea\u8eab\u306eDjango\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u304c\u3069\u306e\u3088\u3046\u306b\u9023\u643a\u3059\u308b\u304b\u3092\u8003\u616e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u5168\u4f53\u7684\u306b\u306f\u3001\u3053\u3053\u3067\u8b70\u8ad6\u3055\u308c\u3066\u3044\u308b\u8a2d\u5b9a\u306f\u3001\u307b\u3068\u3093\u3069\u306eDjango\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u3068\u3063\u3066\u826f\u3044\u57fa\u76e4\u3067\u3059\u3002\u6b21\u306b\u3001.env\u306e\u3055\u3089\u306a\u308b\u4f7f\u7528\u6cd5\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d75 \u2014 Secrets\u306e\u305f\u3081\u306edjango-environ\u306e\u5229\u7528<\/h2>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u6700\u5f8c\u306e\u90e8\u5206\u3067\u306f\u3001django-environ\u3092\u6d3b\u7528\u3059\u308b\u65b9\u6cd5\u3092\u8aac\u660e\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eSECRET_KEY\u3084\u7ba1\u7406\u8005\u306e\u30ed\u30b0\u30a4\u30f3URL\u306a\u3069\u3001\u7279\u5b9a\u306e\u60c5\u5831\u3092\u96a0\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002GitHub\u3084GitLab\u306a\u3069\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u30b3\u30fc\u30c9\u3092\u516c\u958b\u3059\u308b\u4e88\u5b9a\u304c\u3042\u308b\u5834\u5408\u3001\u3053\u308c\u306f\u7d20\u6674\u3089\u3057\u3044\u30a2\u30a4\u30c7\u30a2\u3067\u3059\u3002\u306a\u305c\u306a\u3089\u3001\u3053\u308c\u3089\u306e\u79d8\u5bc6\u60c5\u5831\u306f\u516c\u958b\u3055\u308c\u306a\u3044\u304b\u3089\u3067\u3059\u3002\u4ee3\u308f\u308a\u306b\u3001\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3084\u30b5\u30fc\u30d0\u30fc\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u521d\u671f\u8a2d\u5b9a\u3059\u308b\u969b\u306b\u3001\u65b0\u3057\u3044.env\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3001\u3053\u308c\u3089\u306e\u79d8\u5bc6\u5909\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067 SECRET_KEY \u3092\u96a0\u3055\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u306e\u3067\u3001\u305d\u308c\u306b\u53d6\u308a\u639b\u304b\u308c\u307e\u3059\u3002<\/p>\n<p>\u3042\u306a\u305f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u308b.env\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> .env<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u6b21\u306e\u884c\u3092\u8ffd\u52a0\u3057\u3001&#8221;your_secret_key&#8221;\u3092\u81ea\u5206\u306e\u79d8\u5bc6\u306e\u6587\u5b57\u5217\u3067\u7f6e\u304d\u63db\u3048\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/.env<\/div>\n<pre class=\"post-pre\"><code>DJANGO_SETTINGS_MODULE=\"<mark>testsite<\/mark>.settings.development\"\r\nSECRET_KEY=\"<mark>your_secret_key<\/mark>\"\r\n<\/code><\/pre>\n<p>\u6b21\u306b\u3001CTRL+X\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u308b\u3002\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306bY\u3092\u62bc\u3057\u3001\u305d\u3057\u3066ENTER\u3092\u62bc\u3059\u3053\u3068\u3002<\/p>\n<p>\u6b21\u306b\u3001base.py\u3092\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> <mark>testsite<\/mark>\/settings\/base.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u6b21\u306e\u3088\u3046\u306bSECRET_KEY\u5909\u6570\u3092\u66f4\u65b0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308btestsite\/testsite\/settings\/base.py\u3092\u65e5\u672c\u8a9e\u3067\u8a00\u3044\u63db\u3048\u308b\u3068:<\/div>\n<pre class=\"post-pre\"><code><span class=\"token punctuation\">.<\/span> <span class=\"token punctuation\">.<\/span> <span class=\"token punctuation\">.<\/span>\r\n<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token keyword\">import<\/span> environ\r\n\r\nenv <span class=\"token operator\">=<\/span> environ<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\nenviron<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">.<\/span>read_env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span>\r\n\r\nSECRET_KEY <span class=\"token operator\">=<\/span> <mark>env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SECRET_KEY'<\/span><span class=\"token punctuation\">)<\/span><\/mark>\r\n<span class=\"token punctuation\">.<\/span> <span class=\"token punctuation\">.<\/span> <span class=\"token punctuation\">.<\/span>\r\n<\/code><\/pre>\n<div class=\"post-conf-note\">\n<p class=\"post-conf-desc\">Note<\/p>\n<div>\u6ce8\u610f\uff1aSECRET_KEY\u306f\u5b9f\u969b\u306e\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30ad\u30fc\u3067\u7f6e\u304d\u63db\u3048\u3066\u306f\u3044\u3051\u307e\u305b\u3093\u3002SECRET_KEY\u5909\u6570\u306f\u305d\u306e\u307e\u307e\u306b\u3057\u3066\u304a\u304d\u3001\u5b9f\u969b\u306e\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30ad\u30fc\u306f.env\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/div>\n<\/div>\n<p>\u305d\u306e\u5f8c\u3001CTRL+X\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u3001\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306bY\u3092\u62bc\u3057\u3001\u305d\u3057\u3066ENTER\u3092\u62bc\u3059\u3053\u3068\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u9589\u3058\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f.env\u306b\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308bSECRET_KEY\u304c\u4f7f\u7528\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u6700\u5f8c\u306b\u3001\u30e9\u30f3\u30c0\u30e0\u306a\u6587\u5b57\u5217\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067\u7ba1\u7406\u8005URL\u3092\u96a0\u3057\u307e\u3059\u3002\u3064\u307e\u308a\u3001your_domain\/admin\u306b\u884c\u304f\u4ee3\u308f\u308a\u306b\u3001your_domain\/very_secret_url\/admin\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30dc\u30c3\u30c8\u3084\u898b\u77e5\u3089\u306c\u4eba\u3005\u304c\u7ba1\u7406\u8005URL\u3092\u898b\u3064\u3051\u308b\u306e\u304c\u96e3\u3057\u304f\u306a\u308a\u3001\u7ba1\u7406\u8005\u30ed\u30b0\u30a4\u30f3\u306e\u30d6\u30eb\u30fc\u30c8\u30d5\u30a9\u30fc\u30b9\u653b\u6483\u3082\u56f0\u96e3\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3082\u3046\u4e00\u5ea6.env\u3092\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> .env<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u79d8\u5bc6\u306e\u7ba1\u7406\u8005URL\u5909\u6570\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/.env<\/div>\n<pre class=\"post-pre\"><code>DJANGO_SETTINGS_MODULE=\"<mark>testsite<\/mark>.settings.development\"\r\nSECRET_KEY=\"your_secret_key\"\r\n<mark>SECRET_ADMIN_URL=\"very_secret_url\"<\/mark>\r\n<\/code><\/pre>\n<p>\u300cCTRL+X\u300d\u3092\u62bc\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u3066\u304f\u3060\u3055\u3044\u3002\u300cY\u300d\u3092\u62bc\u3057\u3066\u4fdd\u5b58\u3057\u3001\u300cENTER\u300d\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u4eca\u5ea6\u306f\u3001SECRET_ADMIN_URL\u3092\u4f7f\u7528\u3057\u3066Django\u306b\u7ba1\u7406\u8005URL\u3092\u96a0\u3059\u3088\u3046\u306b\u6307\u793a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> <mark>testsite<\/mark>\/urls.py<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<div class=\"post-conf-note\">\n<p class=\"post-conf-desc\">Note<\/p>\n<div>\u6ce8\u610f\uff1a\u81ea\u5206\u306e\u79d8\u5bc6\u306eURL\u3067\u3042\u308bvery_secret_url\u3092\u5fd8\u308c\u305a\u306b\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\n\u3053\u306e\u5909\u6570\u306b\u30e9\u30f3\u30c0\u30e0\u306a\u6587\u5b57\u5217\u3092\u4f7f\u7528\u3057\u305f\u3044\u5834\u5408\u3001Python\u306b\u306f\u7d20\u6674\u3089\u3057\u3044secrets.py\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u3042\u308a\u307e\u3059\u3002\u5f7c\u3089\u304c\u63d0\u4f9b\u3059\u308b\u4f8b\u306f\u3001\u5b89\u5168\u306a\u30e9\u30f3\u30c0\u30e0\u306a\u6587\u5b57\u5217\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306e\u7d20\u6674\u3089\u3057\u3044\u65b9\u6cd5\u3067\u3059\u3002<\/div>\n<\/div>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u7ba1\u7406\u8005\u306eURL\u3092\u7de8\u96c6\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\/urls.py<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>contrib <span class=\"token keyword\">import<\/span> admin\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>urls <span class=\"token keyword\">import<\/span> path\r\n<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token keyword\">import<\/span> environ\r\n\r\nenv <span class=\"token operator\">=<\/span> environ<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\nenviron<span class=\"token punctuation\">.<\/span>Env<span class=\"token punctuation\">.<\/span>read_env<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">^<\/span><span class=\"token operator\">&gt;<\/span>\r\n\r\nurlpatterns <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span>\r\n    <mark>path<span class=\"token punctuation\">(<\/span>env<span class=\"token punctuation\">(<\/span><span class=\"token string\">'SECRET_ADMIN_URL'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">'\/admin\/'<\/span><span class=\"token punctuation\">,<\/span> admin<span class=\"token punctuation\">.<\/span>site<span class=\"token punctuation\">.<\/span>urls<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><\/mark>\r\n<span class=\"token punctuation\">]<\/span>\r\n<\/code><\/pre>\n<p>CTRL+X\u3092\u62bc\u3057\u3066\u3001\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306bY\u3092\u62bc\u3057\u3001ENTER\u3092\u62bc\u3057\u3066\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u300c\/admin\/\u300d\u3067\u306f\u306a\u304f\u3001\u4eca\u3067\u306f\/very_secret_url\/admin\/ \u306e\u7ba1\u7406\u8005\u30ed\u30b0\u30a4\u30f3\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u300d<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/6564437ddaa94e2bdf7ac936\/122-0.png\" alt=\"Admin login page\" \/><\/div>\n<h2>\u7d50\u8ad6<\/h2>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u73fe\u5728\u306eDjango\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u7570\u306a\u308b\u74b0\u5883\u3067\u7c21\u5358\u306b\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u73fe\u5728\u3001\u79d8\u5bc6\u3068\u8a2d\u5b9a\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306bdjango-environ\u3092\u5229\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u3001\u672c\u756a\u74b0\u5883\u306e\u8a2d\u5b9a\u306b\u306fDjango\u306e\u7d44\u307f\u8fbc\u307f\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u6a5f\u80fd\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3059\u3079\u3066\u306e\u63a8\u5968\u3055\u308c\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u6709\u52b9\u5316\u3057\u3001\u6307\u793a\u3055\u308c\u305f\u3088\u3046\u306b\u8a2d\u5b9a\u3092\u518d\u5b9f\u88c5\u3057\u305f\u5834\u5408\u3001\u3042\u306a\u305f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u306f\u4ee5\u4e0b\u306e\u4e3b\u8981\u306a\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>SSL\/HTTPS for all communications (for example, subdomains, cookies, CSRF).<\/li>\n<li>XSS (cross-site scripting) attacks prevention.<\/li>\n<li>CSRF (cross-site request forgery) attacks prevention.<\/li>\n<li>Concealed project secret key.<\/li>\n<li>Concealed admin login URL, preventing brute-force attacks.<\/li>\n<li>Separate settings for development and production.<\/li>\n<\/ul>\n<p>\u3082\u3057Django\u306b\u3064\u3044\u3066\u3082\u3063\u3068\u77e5\u308a\u305f\u3044\u3068\u601d\u3063\u305f\u306a\u3089\u3001Django\u958b\u767a\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30b7\u30ea\u30fc\u30ba\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u3082\u3057\u307e\u3060\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u672c\u756a\u74b0\u5883\u306b\u5c55\u958b\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001Ubuntu 20.04\u3067Django\u3001Postgres\u3001Nginx\u3001Gunicorn\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u65b9\u6cd5\u306b\u3064\u3044\u3066\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002\u307e\u305f\u3001\u4ed6\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306b\u95a2\u3057\u3066\u306f\u3001\u5f0a\u793e\u306eDjango\u30c8\u30d4\u30c3\u30af\u30da\u30fc\u30b8\u3082\u3054\u89a7\u3044\u305f\u3060\u3051\u307e\u3059\u3002<\/p>\n<p>\u305d\u3057\u3066\u3001\u3082\u3061\u308d\u3093\u3001\u8a73\u7d30\u306a\u60c5\u5831\u306b\u3064\u3044\u3066\u306f\u3001Django\u306e\u8a2d\u5b9a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8457\u8005\u306f\u3001\u5bc4\u4ed8\u3092\u884c\u3046\u305f\u3081Write for Donations\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e00\u74b0\u3068\u3057\u3066COVID-19\u6551\u63f4\u57fa\u91d1\u3092\u9078\u3073\u307e\u3057\u305f\u3002 \u306f\u3058\u3081\u306b Django\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u306f\u4fbf\u5229\u306a\u7d4c\u9a13\u306b\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u306a\u305c\u306a\u3089\u3001\u67d4\u8edf\u6027\u3068\u30b9 [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[72,68,62,19,16,26,61],"class_list":["post-23","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-django","tag-62","tag-19","tag-16","tag-26","tag-61"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/ja\/blog\/\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\" \/>\n<meta property=\"og:description\" content=\"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/ja\/blog\/\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-22T08:11:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T01:45:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/6564437ddaa94e2bdf7ac936\/122-0.png\" \/>\n<meta name=\"author\" content=\"\u82bd\u4f9d, \u96e8\u591c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u82bd\u4f9d, \u96e8\u591c\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"36\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/\",\"name\":\"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\"},\"datePublished\":\"2023-06-22T08:11:33+00:00\",\"dateModified\":\"2025-07-31T01:45:22+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/aeb60a7861f2f002b54c66bd65bc6c27\"},\"description\":\"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/ja\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/aeb60a7861f2f002b54c66bd65bc6c27\",\"name\":\"\u82bd\u4f9d, \u96e8\u591c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6305fe5cabc2b854c1208975a47fbf3f8cef3f7cd775b94dceedbe59b74a8010?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6305fe5cabc2b854c1208975a47fbf3f8cef3f7cd775b94dceedbe59b74a8010?s=96&d=mm&r=g\",\"caption\":\"\u82bd\u4f9d, \u96e8\u591c\"},\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/author\/meiamaya\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5 - Blog - Silicon Cloud","description":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/ja\/blog\/\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\/","og_locale":"ja_JP","og_type":"article","og_title":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5","og_description":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","og_url":"https:\/\/www.silicloud.com\/ja\/blog\/\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-06-22T08:11:33+00:00","article_modified_time":"2025-07-31T01:45:22+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/6564437ddaa94e2bdf7ac936\/122-0.png"}],"author":"\u82bd\u4f9d, \u96e8\u591c","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"\u82bd\u4f9d, \u96e8\u591c","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"36\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/","url":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/","name":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website"},"datePublished":"2023-06-22T08:11:33+00:00","dateModified":"2025-07-31T01:45:22+00:00","author":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/aeb60a7861f2f002b54c66bd65bc6c27"},"description":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/ja\/blog\/"},{"@type":"ListItem","position":2,"name":"\u3042\u306a\u305f\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3Django\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u306e\u65b9\u6cd5"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website","url":"https:\/\/www.silicloud.com\/ja\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/aeb60a7861f2f002b54c66bd65bc6c27","name":"\u82bd\u4f9d, \u96e8\u591c","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6305fe5cabc2b854c1208975a47fbf3f8cef3f7cd775b94dceedbe59b74a8010?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6305fe5cabc2b854c1208975a47fbf3f8cef3f7cd775b94dceedbe59b74a8010?s=96&d=mm&r=g","caption":"\u82bd\u4f9d, \u96e8\u591c"},"url":"https:\/\/www.silicloud.com\/ja\/blog\/author\/meiamaya\/"},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ae%e3%83%97%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3django%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":4,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"predecessor-version":[{"id":325653,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/23\/revisions\/325653"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/tags?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}