{"id":228,"date":"2023-04-06T21:44:13","date_gmt":"2023-07-13T15:16:17","guid":{"rendered":"https:\/\/www.silicloud.com\/ja\/blog\/index.php\/2023\/11\/30\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/"},"modified":"2024-03-19T23:15:40","modified_gmt":"2024-03-19T14:15:40","slug":"django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/","title":{"rendered":"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5"},"content":{"rendered":"<h3>\u30a4\u30f3\u30c8\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3092\u65e5\u672c\u8a9e\u3067\u8868\u73fe\u3059\u308b\u3068\u3001\u300c\u5c0e\u5165\u300d\u3068\u306a\u308a\u307e\u3059\u3002<\/h3>\n<p>\u524d\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3001\u300cDjango\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u63a5\u7d9a\u65b9\u6cd5\u300d\u3067\u306f\u3001MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u4f5c\u6210\u65b9\u6cd5\u3001Django\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u8d77\u52d5\u65b9\u6cd5\u3001\u305d\u3057\u3066MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u63a5\u7d9a\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u4fdd\u5b58\u3059\u308b\u30d6\u30ed\u30b0\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30fc\u30bf\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u632f\u308b\u821e\u3044\u3092\u5b9a\u7fa9\u3059\u308bDjango\u306e\u30e2\u30c7\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u30e2\u30c7\u30eb\u306f\u3001Django\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u30c7\u30fc\u30bf\u3092\u30de\u30c3\u30d4\u30f3\u30b0\u3057\u307e\u3059\u3002\u3053\u308c\u306fDjango\u304c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ea\u30ec\u30fc\u30b7\u30e7\u30ca\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\uff08ORM\uff09API\u3092\u4ecb\u3057\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c6\u30fc\u30d6\u30eb\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u3082\u306e\u3067\u3001\u300c\u30e2\u30c7\u30eb\u300d\u3068\u547c\u3070\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>\u524d\u63d0\u6761\u4ef6<\/h2>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306fDjango\u958b\u767a\u30b7\u30ea\u30fc\u30ba\u306e\u4e00\u90e8\u3067\u3042\u308a\u3001\u305d\u306e\u30b7\u30ea\u30fc\u30ba\u306e\u7d9a\u304d\u3067\u3059\u3002<\/p>\n<p>\u3053\u306e\u30b7\u30ea\u30fc\u30ba\u3092\u8ffd\u3063\u304b\u3051\u3066\u3044\u306a\u3044\u5834\u5408\u3001\u4ee5\u4e0b\u306e\u4eee\u5b9a\u3092\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>You have Django version 4 or higher installed.<\/li>\n<li>You have connected your Django app to a database. We are using MySQL, and you can achieve this connection by following part two of the Django series, \u201cHow To Create a Django App and Connect it to a Database.\u201d<\/li>\n<li>You are working with a Unix-based operating system, preferably an Ubuntu 22.04 cloud server as this is the system we have tested on. If you would like to set up Django on a similar environment, please refer to our tutorial, \u201cHow To Install Django and Set Up a Development Environment on Ubuntu 22.04.\u201d<\/li>\n<\/ul>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306f\u4e3b\u306bDjango\u306e\u30e2\u30c7\u30eb\u306b\u95a2\u9023\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u304c\u5c11\u3057\u7570\u306a\u3063\u3066\u3044\u3066\u3082\u3001\u3042\u308b\u7a0b\u5ea6\u306e\u7406\u89e3\u304c\u3067\u304d\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d71 \u2014 Django\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b<\/h2>\n<p>Django\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u6027\u306e\u539f\u5247\u306b\u5f93\u3044\u3001\u30d6\u30ed\u30b0\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306bDjango\u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u306e\u30a2\u30d7\u30ea\u306b\u306f\u3001\u5fc5\u8981\u306a\u3059\u3079\u3066\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/p>\n<p>Python\u3068Django\u306e\u4f5c\u696d\u3092\u59cb\u3081\u308b\u3068\u304d\u306f\u3001Python\u306e\u4eee\u60f3\u74b0\u5883\u3092\u30a2\u30af\u30c6\u30a3\u30d9\u30fc\u30c8\u3057\u3001\u30a2\u30d7\u30ea\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30b7\u30ea\u30fc\u30ba\u306b\u6cbf\u3063\u3066\u9032\u3081\u3066\u304d\u305f\u5834\u5408\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5165\u529b\u3059\u308b\u3053\u3068\u3067\u3053\u308c\u3092\u5b9f\u73fe\u3067\u304d\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> ~\/my_blog_app<\/li>\n<li data-prefix=\"$\"><span class=\"token builtin class-name\">.<\/span> env\/bin\/activate<\/li>\n<li data-prefix=\"$\"><span class=\"token builtin class-name\">cd<\/span> blog<\/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>\u305d\u3053\u304b\u3089\u3001\u3053\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\">python manage.py startapp blogsite<\/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\u308c\u306b\u3088\u3063\u3066\u3001\u30a2\u30d7\u30ea\u3068\u30d6\u30ed\u30b0\u30b5\u30a4\u30c8\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<p>\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30b7\u30ea\u30fc\u30ba\u306e\u3053\u306e\u6642\u70b9\u3067\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>my_blog_app\/\r\n\u2514\u2500\u2500 blog\r\n    \u251c\u2500\u2500 blog\r\n    \u2502   \u251c\u2500\u2500 __init__.py\r\n    \u2502   \u251c\u2500\u2500 __pycache__\r\n    \u2502   \u2502   \u251c\u2500\u2500 __init__.cpython-38.pyc\r\n    \u2502   \u2502   \u251c\u2500\u2500 settings.cpython-38.pyc\r\n    \u2502   \u2502   \u251c\u2500\u2500 urls.cpython-38.pyc\r\n    \u2502   \u2502   \u2514\u2500\u2500 wsgi.cpython-38.pyc\r\n    \u2502   \u251c\u2500\u2500 asgi.py\r\n    \u2502   \u251c\u2500\u2500 settings.py\r\n    \u2502   \u251c\u2500\u2500 urls.py\r\n    \u2502   \u2514\u2500\u2500 wsgi.py\r\n    \u251c\u2500\u2500 blogsite\r\n    \u2502   \u251c\u2500\u2500 __init__.py\r\n    \u2502   \u251c\u2500\u2500 admin.py\r\n    \u2502   \u251c\u2500\u2500 apps.py\r\n    \u2502   \u251c\u2500\u2500 migrations\r\n    \u2502   \u2502   \u2514\u2500\u2500 __init__.py\r\n    \u2502   \u251c\u2500\u2500 models.py\r\n    \u2502   \u251c\u2500\u2500 tests.py\r\n    \u2502   \u2514\u2500\u2500 views.py\r\n    \u2514\u2500\u2500 manage.py\r\n<\/code><\/pre>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u7126\u70b9\u3092\u5f53\u3066\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u3001blogsite\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306b\u3042\u308bmodels.py\u30d5\u30a1\u30a4\u30eb\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d72 &#8211; \u6295\u7a3f\u30e2\u30c7\u30eb\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/h2>\n<p>\u307e\u305a\u3001models.py\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u7de8\u96c6\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u3001\u6295\u7a3f\u30e2\u30c7\u30eb\u306e\u751f\u6210\u30b3\u30fc\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6295\u7a3f\u30e2\u30c7\u30eb\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>title \u2014 The title of the blog post.<\/li>\n<li>slug \u2014 Where valid URLs are stored and generated for web pages.<\/li>\n<li>content \u2014 The textual content of the blog post.<\/li>\n<li>created_on \u2014 The date on which the post was created.<\/li>\n<li>author \u2014 The person who has written the post.<\/li>\n<\/ul>\n<p>\u4eca\u3001models.py\u30d5\u30a1\u30a4\u30eb\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\"><span class=\"token builtin class-name\">cd<\/span> ~\/my_blog_app\/blog\/blogsite<\/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>\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u3001cat\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\"><span class=\"token function\">cat<\/span> models.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>\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u3001\u30e2\u30c7\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u304c\u5fc5\u8981\u3067\u3059\u3002\u307e\u305f\u3001\u3053\u306emodels.py\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u4f55\u3092\u914d\u7f6e\u3059\u308b\u304b\u3092\u8aac\u660e\u3059\u308b\u30b3\u30e1\u30f3\u30c8\u3082\u542b\u3081\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30e2\u30c7\u30eb.py<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>db <span class=\"token keyword\">import<\/span> models\r\n\r\n<span class=\"token comment\"># Create your models here.<\/span>\r\n<\/code><\/pre>\n<p>\u304a\u6c17\u306b\u5165\u308a\u306e\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf\u3092\u4f7f\u7528\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092models.py\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u306e\u4f8b\u3067\u306f\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf\u3068\u3057\u3066nano\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u304a\u597d\u304d\u306a\u3082\u306e\u3092\u4f7f\u7528\u3057\u3066\u3082\u7d50\u69cb\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\"><span class=\"token function\">nano<\/span> models.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>\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u5185\u306b\u306f\u3001\u30e2\u30c7\u30ebAPI\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u305f\u3081\u306e\u30b3\u30fc\u30c9\u304c\u3059\u3067\u306b\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u7d9a\u304f\u30b3\u30e1\u30f3\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u69cb\u3044\u307e\u305b\u3093\u3002\u305d\u308c\u304b\u3089\u3001\u6587\u5b57\u5217\u304b\u3089\u30b9\u30e9\u30c3\u30b0\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306bslugify\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3001\u8a8d\u8a3c\u306e\u305f\u3081\u306bDjango\u306eUser\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3001URL\u3092\u3088\u308a\u67d4\u8edf\u306b\u4f5c\u6210\u3059\u308b\u305f\u3081\u306bdjango.urls\u306ereverse\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002<\/p>\n<div>\u30e2\u30c7\u30eb.py<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>db <span class=\"token keyword\">import<\/span> models\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>template<span class=\"token punctuation\">.<\/span>defaultfilters <span class=\"token keyword\">import<\/span> slugify\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>contrib<span class=\"token punctuation\">.<\/span>auth<span class=\"token punctuation\">.<\/span>models <span class=\"token keyword\">import<\/span> User\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>urls <span class=\"token keyword\">import<\/span> reverse\r\n<\/code><\/pre>\n<p>\u305d\u306e\u5f8c\u3001Post\u3068\u3044\u3046\u30e2\u30c7\u30eb\u30af\u30e9\u30b9\u306b\u30af\u30e9\u30b9\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6301\u3061\u307e\u3059\uff1a\u30bf\u30a4\u30c8\u30eb\u3001\u30b9\u30e9\u30c3\u30b0\u3001\u30b3\u30f3\u30c6\u30f3\u30c4\u3001\u4f5c\u6210\u65e5\u6642\u3001\u8457\u8005\u3002\u3053\u308c\u3089\u3092Import\u6587\u306e\u4e0b\u306b\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30e2\u30c7\u30eb.py<\/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 keyword\">class<\/span> <span class=\"token class-name\">Post<\/span><span class=\"token punctuation\">(<\/span>models<span class=\"token punctuation\">.<\/span>Model<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n    title <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>CharField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">255<\/span><span class=\"token punctuation\">)<\/span>\r\n    slug <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>SlugField<span class=\"token punctuation\">(<\/span>unique<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">,<\/span> max_length<span class=\"token operator\">=<\/span><span class=\"token number\">255<\/span><span class=\"token punctuation\">)<\/span>\r\n    content <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>TextField<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n    created_on <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>DateTimeField<span class=\"token punctuation\">(<\/span>auto_now_add<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">)<\/span>\r\n    author <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>TextField<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n<\/code><\/pre>\n<p>\u6b21\u306b\u3001URL\u306e\u751f\u6210\u6a5f\u80fd\u3068\u6295\u7a3f\u306e\u4fdd\u5b58\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u91cd\u8981\u3067\u3059\u3002\u306a\u305c\u306a\u3089\u3001\u30e6\u30cb\u30fc\u30af\u306a\u6295\u7a3f\u306b\u5bfe\u5fdc\u3059\u308b\u30e6\u30cb\u30fc\u30af\u306a\u30ea\u30f3\u30af\u3092\u4f5c\u6210\u3059\u308b\u304b\u3089\u3067\u3059\u3002<\/p>\n<div>\u30e2\u30c7\u30eb\u30ba.py<\/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 keyword\">def<\/span> <span class=\"token function\">get_absolute_url<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token keyword\">return<\/span> reverse<span class=\"token punctuation\">(<\/span><span class=\"token string\">'blog_post_detail'<\/span><span class=\"token punctuation\">,<\/span> args<span class=\"token operator\">=<\/span><span class=\"token punctuation\">[<\/span>self<span class=\"token punctuation\">.<\/span>slug<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\n    <span class=\"token keyword\">def<\/span> <span class=\"token function\">save<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">*<\/span>args<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">**<\/span>kwargs<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token keyword\">if<\/span> <span class=\"token keyword\">not<\/span> self<span class=\"token punctuation\">.<\/span>slug<span class=\"token punctuation\">:<\/span>\r\n            self<span class=\"token punctuation\">.<\/span>slug <span class=\"token operator\">=<\/span> slugify<span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">.<\/span>title<span class=\"token punctuation\">)<\/span>\r\n        <span class=\"token builtin\">super<\/span><span class=\"token punctuation\">(<\/span>Post<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>args<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">**<\/span>kwargs<span class=\"token punctuation\">)<\/span>\r\n<\/code><\/pre>\n<p>\u4eca\u3001\u79c1\u305f\u3061\u306f\u30e2\u30c7\u30eb\u306b\u6295\u7a3f\u304c\u3069\u306e\u3088\u3046\u306b\u9806\u5e8f\u4ed8\u3051\u3089\u308c\u3001\u30a6\u30a7\u30d6\u30da\u30fc\u30b8\u4e0a\u3067\u8868\u793a\u3055\u308c\u308b\u304b\u3092\u4f1d\u3048\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u306b\u3001\u30cd\u30b9\u30c8\u3055\u308c\u305f\u5185\u90e8\u306eMeta\u30af\u30e9\u30b9\u306b\u30ed\u30b8\u30c3\u30af\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002Meta\u30af\u30e9\u30b9\u306b\u306f\u3001\u4e00\u822c\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5b9a\u7fa9\u3068\u306f\u95a2\u4fc2\u306a\u3044\u4ed6\u306e\u91cd\u8981\u306a\u30e2\u30c7\u30eb\u30ed\u30b8\u30c3\u30af\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/p>\n<div>\u30e2\u30c7\u30eb.py<\/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 keyword\">class<\/span> <span class=\"token class-name\">Meta<\/span><span class=\"token punctuation\">:<\/span>\r\n        ordering <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">'created_on'<\/span><span class=\"token punctuation\">]<\/span>\r\n\r\n        <span class=\"token keyword\">def<\/span> <span class=\"token function\">__unicode__<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n            <span class=\"token keyword\">return<\/span> self<span class=\"token punctuation\">.<\/span>title\r\n<\/code><\/pre>\n<p>\u6700\u7d42\u7684\u306b\u3001\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u306fComment\u30e2\u30c7\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30e2\u30c7\u30eb\u306bmodels.Models\u3092\u542b\u3080Comment\u3068\u3044\u3046\u5225\u306e\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u3001\u6b21\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u5b9a\u7fa9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>name \u2014 The name of the person posting the comment.<\/li>\n<li>email \u2014 The email address of the person posting the comment.<\/li>\n<li>text \u2014 The text of the comment itself.<\/li>\n<li>post \u2014 The post with which the comment was made.<\/li>\n<li>created_on \u2014 The time the comment was created.<\/li>\n<\/ul>\n<div>\u30e2\u30c7\u30eb.py<\/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 keyword\">class<\/span> <span class=\"token class-name\">Comment<\/span><span class=\"token punctuation\">(<\/span>models<span class=\"token punctuation\">.<\/span>Model<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n    name <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>CharField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">42<\/span><span class=\"token punctuation\">)<\/span>\r\n    email <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>EmailField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">75<\/span><span class=\"token punctuation\">)<\/span>\r\n    website <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>URLField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">,<\/span> null<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">,<\/span> blank<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">)<\/span>\r\n    content <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>TextField<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n    post <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>ForeignKey<span class=\"token punctuation\">(<\/span>Post<span class=\"token punctuation\">,<\/span> on_delete<span class=\"token operator\">=<\/span>models<span class=\"token punctuation\">.<\/span>CASCADE<span class=\"token punctuation\">)<\/span>\r\n    created_on <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>DateTimeField<span class=\"token punctuation\">(<\/span>auto_now_add<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">)<\/span>\r\n<\/code><\/pre>\n<p>\u3053\u306e\u6642\u70b9\u3067\u3001models.py\u306f\u5b8c\u6210\u3057\u3066\u3044\u307e\u3059\u3002models.py\u30d5\u30a1\u30a4\u30eb\u304c\u4ee5\u4e0b\u306e\u5185\u5bb9\u3068\u4e00\u81f4\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u4ee5\u4e0b\u3092\u8a00\u3044\u63db\u3048\u308b\u3068\u3001\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff1a<br \/>\n\u300c\u30e2\u30c7\u30eb\u30ba\u30fb\u30d4\u30fc\u30ef\u30a4\u300d<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>db <span class=\"token keyword\">import<\/span> models\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>template<span class=\"token punctuation\">.<\/span>defaultfilters <span class=\"token keyword\">import<\/span> slugify\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>contrib<span class=\"token punctuation\">.<\/span>auth<span class=\"token punctuation\">.<\/span>models <span class=\"token keyword\">import<\/span> User\r\n<span class=\"token keyword\">from<\/span> django<span class=\"token punctuation\">.<\/span>urls <span class=\"token keyword\">import<\/span> reverse\r\n\r\n\r\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Post<\/span><span class=\"token punctuation\">(<\/span>models<span class=\"token punctuation\">.<\/span>Model<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n    title <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>CharField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">255<\/span><span class=\"token punctuation\">)<\/span>\r\n    slug <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>SlugField<span class=\"token punctuation\">(<\/span>unique<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">,<\/span> max_length<span class=\"token operator\">=<\/span><span class=\"token number\">255<\/span><span class=\"token punctuation\">)<\/span>\r\n    content <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>TextField<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n    created_on <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>DateTimeField<span class=\"token punctuation\">(<\/span>auto_now_add<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">)<\/span>\r\n    author <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>TextField<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\n    <span class=\"token keyword\">def<\/span> <span class=\"token function\">get_absolute_url<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token keyword\">return<\/span> reverse<span class=\"token punctuation\">(<\/span><span class=\"token string\">'blog_post_detail'<\/span><span class=\"token punctuation\">,<\/span> args<span class=\"token operator\">=<\/span><span class=\"token punctuation\">[<\/span>self<span class=\"token punctuation\">.<\/span>slug<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span>\r\n    \r\n    <span class=\"token keyword\">def<\/span> <span class=\"token function\">save<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">*<\/span>args<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">**<\/span>kwargs<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token keyword\">if<\/span> <span class=\"token keyword\">not<\/span> self<span class=\"token punctuation\">.<\/span>slug<span class=\"token punctuation\">:<\/span>\r\n            self<span class=\"token punctuation\">.<\/span>slug <span class=\"token operator\">=<\/span> slugify<span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">.<\/span>title<span class=\"token punctuation\">)<\/span>\r\n        <span class=\"token builtin\">super<\/span><span class=\"token punctuation\">(<\/span>Post<span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>args<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">**<\/span>kwargs<span class=\"token punctuation\">)<\/span>\r\n\r\n    <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Meta<\/span><span class=\"token punctuation\">:<\/span>\r\n        ordering <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">'created_on'<\/span><span class=\"token punctuation\">]<\/span>\r\n\r\n        <span class=\"token keyword\">def<\/span> <span class=\"token function\">__unicode__<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n            <span class=\"token keyword\">return<\/span> self<span class=\"token punctuation\">.<\/span>title\r\n\r\n\r\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Comment<\/span><span class=\"token punctuation\">(<\/span>models<span class=\"token punctuation\">.<\/span>Model<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n    name <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>CharField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">42<\/span><span class=\"token punctuation\">)<\/span>\r\n    email <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>EmailField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">75<\/span><span class=\"token punctuation\">)<\/span>\r\n    website <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>URLField<span class=\"token punctuation\">(<\/span>max_length<span class=\"token operator\">=<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">,<\/span> null<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">,<\/span> blank<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">)<\/span>\r\n    content <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>TextField<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n    post <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>ForeignKey<span class=\"token punctuation\">(<\/span>Post<span class=\"token punctuation\">,<\/span> on_delete<span class=\"token operator\">=<\/span>models<span class=\"token punctuation\">.<\/span>CASCADE<span class=\"token punctuation\">)<\/span>\r\n    created_on <span class=\"token operator\">=<\/span> models<span class=\"token punctuation\">.<\/span>DateTimeField<span class=\"token punctuation\">(<\/span>auto_now_add<span class=\"token operator\">=<\/span><span class=\"token boolean\">True<\/span><span class=\"token punctuation\">)<\/span>\r\n\r\n\r\n<\/code><\/pre>\n<p>\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u308b\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3082\u3057nano\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001CTRL\u3068X\u3092\u30bf\u30a4\u30d7\u3057\u3001\u6b21\u306bY\u3001\u305d\u3057\u3066ENTER\u3092\u62bc\u3059\u3053\u3068\u3067\u4fdd\u5b58\u3068\u9589\u3058\u308b\u64cd\u4f5c\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>models.py\u30d5\u30a1\u30a4\u30eb\u304c\u8a2d\u5b9a\u3055\u308c\u305f\u3089\u3001settings.py\u30d5\u30a1\u30a4\u30eb\u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d73 \u2014 \u8a2d\u5b9a\u306e\u66f4\u65b0<\/h2>\n<p>\u79c1\u305f\u3061\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u30e2\u30c7\u30eb\u3092\u8ffd\u52a0\u3057\u305f\u306e\u3067\u3001\u8ffd\u52a0\u3057\u305f\u3070\u304b\u308a\u306e\u30d6\u30ed\u30b0\u30b5\u30a4\u30c8\u30a2\u30d7\u30ea\u306e\u5b58\u5728\u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u901a\u77e5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u3001settings.py\u306eINSTALLED_APPS\u30bb\u30af\u30b7\u30e7\u30f3\u306b\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067\u884c\u3044\u307e\u3059\u3002<\/p>\n<p>settings.py\u304c\u5b58\u5728\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\"><span class=\"token builtin class-name\">cd<\/span> ~\/my_blog_app\/blog\/blog<\/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\u3053\u304b\u3089\u3001\u4f8b\u3048\u3070nano\u3092\u4f7f\u3063\u3066\u3001settings.py\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> settings.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>\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u305f\u3089\u3001\u4ee5\u4e0b\u306b\u793a\u3059\u3088\u3046\u306b\u3001\u30d5\u30a1\u30a4\u30eb\u306eINSTALLED_APPS\u30bb\u30af\u30b7\u30e7\u30f3\u306b\u30d6\u30ed\u30b0\u30b5\u30a4\u30c8\u306e\u30a2\u30d7\u30ea\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u300csettings.py\u300d\u3002<\/div>\n<pre class=\"post-pre\"><code><span class=\"token comment\"># Application definition<\/span>\r\nINSTALLED_APPS <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span>\r\n    <mark><span class=\"token string\">'blogsite'<\/span><span class=\"token punctuation\">,<\/span><\/mark>\r\n    <span class=\"token string\">'django.contrib.admin'<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token string\">'django.contrib.auth'<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token string\">'django.contrib.contenttypes'<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token string\">'django.contrib.sessions'<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token string\">'django.contrib.messages'<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token string\">'django.contrib.staticfiles'<\/span><span class=\"token punctuation\">,<\/span>\r\n<span class=\"token punctuation\">]<\/span>\r\n<\/code><\/pre>\n<p>\u30d6\u30ed\u30b0\u30b5\u30a4\u30c8\u30a2\u30d7\u30ea\u3092\u8ffd\u52a0\u3059\u308b\u3068\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u7d42\u4e86\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u6642\u70b9\u3067\u3001\u79c1\u305f\u3061\u306f\u3053\u308c\u3089\u306e\u5909\u66f4\u3092\u9069\u7528\u3059\u308b\u6e96\u5099\u304c\u3067\u304d\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d74 \u2014 \u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b<\/h2>\n<p>\u79c1\u305f\u3061\u306e\u30e2\u30c7\u30eb\u300cPost\u300d\u3068\u300cComment\u300d\u3092\u8ffd\u52a0\u3057\u305f\u3089\u3001\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u306f\u3053\u308c\u3089\u306e\u5909\u66f4\u3092\u9069\u7528\u3057\u3001MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30b9\u30ad\u30fc\u30de\u304c\u305d\u308c\u3089\u3092\u8a8d\u8b58\u3057\u3001\u5fc5\u8981\u306a\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n<p>\u6700\u521d\u306b\u3001\u30e2\u30c7\u30eb\u306e\u5909\u66f4\u3092\u500b\u5225\u306e\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u306b\u30d1\u30c3\u30b1\u30fc\u30b8\u5316\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u4f5c\u696d\u306f\u3001Git\u306a\u3069\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u306e\u30b3\u30df\u30c3\u30c8\u306b\u4f3c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4eca\u3001~\/my_blog_app\/blog\/blogsite\/migrations\u306b\u79fb\u52d5\u3057\u3001ls\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001__init__.py\u30d5\u30a1\u30a4\u30eb\u3057\u304b\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\u3053\u306e\u72b6\u614b\u306f\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3059\u308b\u3068\u5909\u308f\u308a\u307e\u3059\u3002<\/p>\n<p>cd\u3092\u4f7f\u3063\u3066\u30d6\u30ed\u30b0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\"><span class=\"token builtin class-name\">cd<\/span> ~\/my_blog_app\/blog<\/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>manage.py\u306b\u5bfe\u3057\u3066\u3001makemigrations\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\">python manage.py makemigrations<\/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>\u305d\u306e\u5f8c\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u4ee5\u4e0b\u306e\u51fa\u529b\u3092\u53d7\u3051\u53d6\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>Migrations for &#8216;blogsite&#8217;: blogsite\/migrations\/0001_initial.py &#8211; Create model Post &#8211; Create model Comment<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u899a\u3048\u3066\u304a\u3044\u3066\u304f\u3060\u3055\u3044\u3001\/~\/my_blog_app\/blog\/blogsite\/migrations \u306b\u79fb\u52d5\u3057\u3066\u3001\u305d\u3053\u306b\u306f __init__.py \u30d5\u30a1\u30a4\u30eb\u3057\u304b\u306a\u304b\u3063\u305f\u3053\u3068\u3092\u3002\u4eca\u5ea6\u306f\u305d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u623b\u3063\u3066\u307f\u308b\u3068\u3001\u4e8c\u3064\u306e\u30a2\u30a4\u30c6\u30e0\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u306b\u6c17\u3065\u304d\u307e\u3059: __pycache__ \u3068 0001_initial.py\u30020001_initial.py \u30d5\u30a1\u30a4\u30eb\u306f\u3001makemigrations \u3092\u5b9f\u884c\u3057\u305f\u969b\u306b\u81ea\u52d5\u751f\u6210\u3055\u308c\u307e\u3057\u305f\u3002\u540c\u69d8\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001makemigrations \u3092\u5b9f\u884c\u3059\u308b\u305f\u3073\u306b\u751f\u6210\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u3082\u3057\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u3092\u78ba\u8a8d\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u305d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u304b\u30890001_initial.py\u3092\u5b9f\u884c\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u4eca\u3001~\/my_blog_app\/blog\u306b\u79fb\u52d5\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> ~\/my_blog_app\/blog<\/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>\u79c1\u305f\u3061\u306f\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u305f\u306e\u3067\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u3053\u308c\u3089\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u8aac\u660e\u3055\u308c\u305f\u5909\u66f4\u3092\u9069\u7528\u3059\u308b\u305f\u3081\u306b\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u6700\u521d\u306b\u3001showmigrations\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u73fe\u5728\u5b58\u5728\u3059\u308b\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u78ba\u8a8d\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\">python manage.py showmigrations<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\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>admin [X] 0001_initial [X] 0002_logentry_remove_auto_add [X] 0003_logentry_add_action_flag_choices auth [X] 0001_initial [X] 0002_alter_permission_name_max_length [X] 0003_alter_user_email_max_length [X] 0004_alter_user_username_opts [X] 0005_alter_user_last_login_null [X] 0006_require_contenttypes_0002 [X] 0007_alter_validators_add_error_messages [X] 0008_alter_user_username_max_length [X] 0009_alter_user_last_name_max_length [X] 0010_alter_group_name_max_length [X] 0011_update_proxy_permissions blogsite [ ] 0001_initial contenttypes [X] 0001_initial [X] 0002_remove_content_type_name sessions [X] 0001_initial<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>0001_initial\u3068\u3044\u3046\u540d\u524d\u3067Post\u3068Comment\u306e\u30e2\u30c7\u30eb\u3092\u4f5c\u6210\u3057\u305f\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u9664\u304d\u3001\u3059\u3079\u3066\u306e\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u304c\u30c1\u30a7\u30c3\u30af\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u306b\u6c17\u3065\u304f\u3067\u3057\u3087\u3046\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u884c\u3063\u305f\u5f8c\u306b\u5b9f\u884c\u3055\u308c\u308bSQL\u6587\u3092\u78ba\u8a8d\u3057\u307e\u3057\u3087\u3046\u3002\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3068\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30bf\u30a4\u30c8\u30eb\u3092\u5f15\u6570\u3068\u3057\u3066\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\">python manage.py sqlmigrate blogsite 0001_initial<\/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\u306b\u306f\u3001\u88cf\u5074\u3067\u884c\u308f\u308c\u3066\u3044\u308b\u5b9f\u969b\u306eSQL\u30af\u30a8\u30ea\u304c\u516c\u958b\u3055\u308c\u3066\u3044\u307e\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>&#8212; &#8212; Create model Post &#8212; CREATE TABLE `blogsite_post` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `title` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL UNIQUE, `content` longtext NOT NULL, `created_on` datetime(6) NOT NULL, `author` longtext NOT NULL); &#8212; &#8212; Create model Comment &#8212; CREATE TABLE `blogsite_comment` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `name` varchar(42) NOT NULL, `email` varchar(75) NOT NULL, `website` varchar(200) NULL, `content` longtext NOT NULL, `created_on` datetime(6) NOT NULL, `post_id` integer NOT NULL); ALTER TABLE `blogsite_comment` ADD CONSTRAINT `blogsite_comment_post_id_de248bfe_fk_blogsite_post_id` FOREIGN KEY (`post_id`) REFERENCES `blogsite_post` (`id`);<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u4eca\u3001\u79c1\u305f\u3061\u306eMySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u9069\u7528\u3055\u308c\u308b\u3088\u3046\u306b\u79fb\u884c\u3092\u5b9f\u884c\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\">python manage.py migrate<\/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\u51fa\u529b\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002 (Shimon no shutsuryoku o uketorimasu.)<\/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>Operations to perform: Apply all migrations: admin, auth, blogsite, contenttypes, sessions Running migrations: Applying blogsite.0001_initial&#8230; OK<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u73fe\u5728\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u304c\u6b63\u5e38\u306b\u9069\u7528\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n<p>Django\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u8ff0\u3079\u3089\u308c\u3066\u3044\u308b\u901a\u308a\u3001MySQL\u3092\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3068\u3057\u305f\u5834\u5408\u3001Django\u306e\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u306f\u6ce8\u610f\u70b9\u304c3\u3064\u3042\u308a\u307e\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>Lack of support for transactions around schema alteration operations. In other words, if a migration fails to apply successfully, you will have to manually unpick the changes you\u2019ve made in order to attempt another migration. It is not possible to rollback, to an earlier point, before any changes were made in the failed migration.<\/li>\n<li>For most schema alteration operations, MySQL will fully rewrite tables. In the worst case, the time complexity will be proportional to the number of rows in the table to add or remove columns. According to the Django documentation, this could be as slow as one minute per million rows.<\/li>\n<li>In MySQL, there are small limits on name lengths for columns, tables and indices. There is also a limit on the combined size of all columns and index covers. While some other backends can support higher limits created in Django, the same indices will fail to be created with a MySQL backend in place.<\/li>\n<\/ul>\n<p>Django\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u5404\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u3064\u3044\u3066\u3001\u5229\u70b9\u3068\u6b20\u70b9\u3092\u541f\u5473\u3059\u308b\u3053\u3068\u3092\u5fd8\u308c\u305a\u306b\u8003\u616e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h2>\u300c\u30b9\u30c6\u30c3\u30d7 5 \u2014 \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30b9\u30ad\u30fc\u30de\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/h2>\n<p>\u79fb\u884c\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001Django\u30e2\u30c7\u30eb\u3092\u901a\u3058\u3066\u4f5c\u6210\u3057\u305fMySQL\u30c6\u30fc\u30d6\u30eb\u306e\u6b63\u5e38\u306a\u751f\u6210\u3092\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u524d\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u4f5c\u6210\u3057\u305fdjangouser\u3092\u4f7f\u7528\u3057\u3066MySQL\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u305f\u3081\u306b\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(env) sammy@ubuntu:$\">mysql blog_data <span class=\"token parameter variable\">-u<\/span> <mark>djangouser<\/mark><\/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>\u4eca\u3001\u79c1\u305f\u3061\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9blog_data\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3082\u3057\u4f7f\u7528\u3057\u3066\u3044\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u308f\u304b\u3089\u306a\u3044\u5834\u5408\u306f\u3001SQL\u3067SHOW DATABASES;\u3092\u4f7f\u3063\u3066\u3059\u3079\u3066\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"mysql&gt;\">USE blog_data<span class=\"token punctuation\">;<\/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>\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3057\u3066\u3001\u30c6\u30fc\u30d6\u30eb\u3092\u8868\u793a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"mysql&gt;\">SHOW TABLES<span class=\"token punctuation\">;<\/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>\u3053\u306eSQL\u30af\u30a8\u30ea\u306f\u4ee5\u4e0b\u3092\u8868\u793a\u3059\u308b\u306f\u305a\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>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+ | Tables_in_blog_data | +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+ | auth_group | | auth_group_permissions | | auth_permission | | auth_user | | auth_user_groups | | auth_user_user_permissions | | blogsite_comment | | blogsite_post | | django_admin_log | | django_content_type | | django_migrations | | django_session | +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+ 12 rows in set (0.01 sec)<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u30c6\u30fc\u30d6\u30eb\u306e\u4e2d\u306b\u306f\u3001\u30d6\u30ed\u30b0\u30b5\u30a4\u30c8\u306e\u30b3\u30e1\u30f3\u30c8\u3068\u30d6\u30ed\u30b0\u30b5\u30a4\u30c8\u306e\u6295\u7a3f\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u306f\u79c1\u305f\u3061\u81ea\u8eab\u3067\u4f5c\u6210\u3057\u305f\u30e2\u30c7\u30eb\u3067\u3059\u3002\u5b9a\u7fa9\u3057\u305f\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"mysql&gt;\">DESCRIBE blogsite_comment<span class=\"token punctuation\">;<\/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<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>+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+ | Field | Type | Null | Key | Default | Extra | +&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+ | id | int | NO | PRI | NULL | auto_increment | | name | varchar(42) | NO | | NULL | | | email | varchar(75) | NO | | NULL | | | website | varchar(200) | YES | | NULL | | | content | longtext | NO | | NULL | | | created_on | datetime(6) | NO | | NULL | | | post_id | int | NO | MUL | NULL | | +&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+ 7 rows in set (0.00 sec)<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"mysql&gt;\">DESCRIBE blogsite_post<span class=\"token punctuation\">;<\/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<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>+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+ | Field | Type | Null | Key | Default | Extra | +&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+ | id | int | NO | PRI | NULL | auto_increment | | title | varchar(255) | NO | | NULL | | | slug | varchar(255) | NO | UNI | NULL | | | content | longtext | NO | | NULL | | | created_on | datetime(6) | NO | | NULL | | | author | longtext | NO | | NULL | | +&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;+&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;-+ 6 rows in set (0.00 sec)<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u79c1\u305f\u3061\u306f\u3001\u79c1\u305f\u3061\u306eDjango\u30e2\u30c7\u30eb\u79fb\u884c\u304b\u3089\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c6\u30fc\u30d6\u30eb\u304c\u6b63\u5e38\u306b\u751f\u6210\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>MySQL\u3092\u7d42\u4e86\u3059\u308b\u306b\u306f\u3001CTRL + D\u3067\u7d42\u4e86\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002Python\u306e\u74b0\u5883\u3092\u7d42\u4e86\u3059\u308b\u6e96\u5099\u304c\u3067\u304d\u305f\u3089\u3001deactivate\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"(my_env) sammy@ubuntu:$\">deactivate<\/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>\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u74b0\u5883\u306e\u7121\u52b9\u5316\u306b\u3088\u308a\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u623b\u308a\u307e\u3059\u3002<\/p>\n<h3>\u7d50\u8ad6<\/h3>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u30d6\u30ed\u30b0Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u57fa\u672c\u6a5f\u80fd\u306e\u305f\u3081\u306e\u30e2\u30c7\u30eb\u3092\u6b63\u5e38\u306b\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002\u30e2\u30c7\u30eb\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u65b9\u6cd5\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u52d5\u4f5c\u3001\u305d\u3057\u3066Django\u30e2\u30c7\u30eb\u3092\u5b9f\u969b\u306eMySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c6\u30fc\u30d6\u30eb\u306b\u5909\u63db\u3059\u308b\u30d7\u30ed\u30bb\u30b9\u306b\u3064\u3044\u3066\u5b66\u3073\u307e\u3057\u305f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30a4\u30f3\u30c8\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3092\u65e5\u672c\u8a9e\u3067\u8868\u73fe\u3059\u308b\u3068\u3001\u300c\u5c0e\u5165\u300d\u3068\u306a\u308a\u307e\u3059\u3002 \u524d\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3001\u300cDjango\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u63a5\u7d9a\u65b9\u6cd5\u300d\u3067\u306f\u3001MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u4f5c\u6210\u65b9\u6cd5\u3001Django\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u8d77\u52d5\u65b9\u6cd5\u3001\u305d\u3057\u3066M [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-228","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"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>Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5 - Blog - Silicon Cloud<\/title>\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\/django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5\" \/>\n<meta property=\"og:description\" content=\"\u30a4\u30f3\u30c8\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3092\u65e5\u672c\u8a9e\u3067\u8868\u73fe\u3059\u308b\u3068\u3001\u300c\u5c0e\u5165\u300d\u3068\u306a\u308a\u307e\u3059\u3002 \u524d\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3001\u300cDjango\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u63a5\u7d9a\u65b9\u6cd5\u300d\u3067\u306f\u3001MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u4f5c\u6210\u65b9\u6cd5\u3001Django\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u8d77\u52d5\u65b9\u6cd5\u3001\u305d\u3057\u3066M [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/ja\/blog\/django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-13T15:16:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-19T14:15:40+00:00\" \/>\n<meta name=\"author\" content=\"\u590f\u6a39, \u98a8\" \/>\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=\"\u590f\u6a39, \u98a8\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\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\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/\",\"name\":\"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\"},\"datePublished\":\"2023-07-13T15:16:17+00:00\",\"dateModified\":\"2024-03-19T14:15:40+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4e591db2661c4cc425470b461259391d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/ja\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\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\/4e591db2661c4cc425470b461259391d\",\"name\":\"\u590f\u6a39, \u98a8\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g\",\"caption\":\"\u590f\u6a39, \u98a8\"},\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/author\/natsukikaze\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5 - Blog - Silicon Cloud","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\/django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5\/","og_locale":"ja_JP","og_type":"article","og_title":"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5","og_description":"\u30a4\u30f3\u30c8\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3092\u65e5\u672c\u8a9e\u3067\u8868\u73fe\u3059\u308b\u3068\u3001\u300c\u5c0e\u5165\u300d\u3068\u306a\u308a\u307e\u3059\u3002 \u524d\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3001\u300cDjango\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u63a5\u7d9a\u65b9\u6cd5\u300d\u3067\u306f\u3001MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u4f5c\u6210\u65b9\u6cd5\u3001Django\u30a2\u30d7\u30ea\u306e\u4f5c\u6210\u3068\u8d77\u52d5\u65b9\u6cd5\u3001\u305d\u3057\u3066M [&hellip;]","og_url":"https:\/\/www.silicloud.com\/ja\/blog\/django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-13T15:16:17+00:00","article_modified_time":"2024-03-19T14:15:40+00:00","author":"\u590f\u6a39, \u98a8","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"\u590f\u6a39, \u98a8","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"7\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/","url":"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/","name":"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u65b9\u6cd5 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website"},"datePublished":"2023-07-13T15:16:17+00:00","dateModified":"2024-03-19T14:15:40+00:00","author":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4e591db2661c4cc425470b461259391d"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/ja\/blog\/"},{"@type":"ListItem","position":2,"name":"Django\u30e2\u30c7\u30eb\u306e\u4f5c\u6210\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\/4e591db2661c4cc425470b461259391d","name":"\u590f\u6a39, \u98a8","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g","caption":"\u590f\u6a39, \u98a8"},"url":"https:\/\/www.silicloud.com\/ja\/blog\/author\/natsukikaze\/"},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/django%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90%e6%96%b9%e6%b3%95\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/228","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"predecessor-version":[{"id":37964,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/228\/revisions\/37964"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}