{"id":1485,"date":"2019-05-20T04:37:57","date_gmt":"2019-05-19T19:37:57","guid":{"rendered":"http:\/\/idealive.jp\/blog\/?p=1485"},"modified":"2019-05-20T04:39:13","modified_gmt":"2019-05-19T19:39:13","slug":"%e7%99%bb%e9%8c%b2%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b","status":"publish","type":"post","link":"https:\/\/idealive.jp\/blog\/2019\/05\/20\/%e7%99%bb%e9%8c%b2%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b\/","title":{"rendered":"\u767b\u9332\u6a5f\u80fd\u3092\u8ffd\u52a0\u3059\u308b"},"content":{"rendered":"<p>\u524d\u56de\u3067\u306fSQLite3\u306b\u767b\u9332\u3055\u308c\u305f\u5546\u54c1\u60c5\u5831\u3092\u691c\u7d22\u3059\u308b\u6a5f\u80fd\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u306f\u5546\u54c1\u60c5\u5831\u3092\u767b\u9332\u3059\u308b\u6a5f\u80fd\u3092\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">instance\r\n\u2514\u2500\u2500 create_db.py\r\n\u2514\u2500\u2500 itemdb.sqlite3\r\nweb\r\n\u2514\u2500\u2500 itemdb.py\r\n\u2514\u2500\u2500 __init__.py\r\n\u2514\u2500\u2500 templates\r\n|  \u2514\u2500\u2500 base.html\r\n|  \u2514\u2500\u2500 newitem.html  (1)\u30fb\u30fb\u30fb\u3000\u65b0\u898f\r\n|  \u2514\u2500\u2500 index.html    (2)\u30fb\u30fb\u30fb\u3000\u66f4\u65b0\r\n\u2514\u2500\u2500 items.py         (3)\u30fb\u30fb\u30fb\u3000\u66f4\u65b0 \r\n\u2514\u2500\u2500 static\r\n   \u2514\u2500\u2500 style.css<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>(1)newitem.html<\/p>\n<p>\u5546\u54c1\u60c5\u5831\u3092\u767b\u9332\u3059\u308b\u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\" title=\"newitem.html\">{% extends 'base.html' %}\r\n\r\n{% block title %}\u65b0\u898f\u5546\u54c1{% endblock %}\r\n\r\n{% block content %}\r\n    &lt;h2&gt;\u65b0\u898f\u5546\u54c1\u306e\u767b\u9332&lt;\/h2&gt;\r\n    \r\n    &lt;form class=\"newform\" method=\"post\"&gt;\r\n        &lt;table&gt;\r\n            &lt;tr&gt;\r\n                &lt;td&gt;&lt;label for=\"item_name\"&gt;\u5546\u54c1\u540d\uff1a&lt;\/label&gt;&lt;\/td&gt;\r\n                &lt;td&gt;&lt;input name=\"item_name\" id=\"item_name\"&gt;&lt;\/td&gt;\r\n            &lt;\/tr&gt;\r\n            &lt;tr&gt;\r\n                &lt;td&gt;&lt;label for=\"price\"&gt;\u4fa1\u683c\uff1a&lt;\/label&gt;&lt;\/td&gt;\r\n                &lt;td&gt;&lt;input name=\"price\" id=\"price\"&gt;&lt;\/td&gt;\r\n            &lt;\/tr&gt;\r\n            &lt;tr&gt;\r\n                &lt;td&gt;&lt;input type=\"submit\" value=\"\u767b\u9332\"&gt;&lt;\/td&gt;\r\n            &lt;\/tr&gt;\r\n        &lt;\/table&gt;\r\n    &lt;\/form&gt;\r\n{%  endblock %}<\/pre>\n<p>\u30fb8\uff5e22\u884c\u76ee\uff1a\u5546\u54c1\u60c5\u5831\u3092\u6a5f\u80fd\u3092\u8ffd\u52a0\uff08\u8981\u6c42\u5f62\u5f0f\u306f\u300cPOST\u300d\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u306f\u300cnewitem\u300d\uff09<\/p>\n<hr \/>\n<p>(2)index.html<\/p>\n<p>\u5546\u54c1\u767b\u9332\u3078\u306e\u30ea\u30f3\u30af\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true \" title=\"index.html\">(\u7701\u7565)\r\n\r\n{% block content %}\r\n    &lt;a href=\"{{url_for('items.newitem')}}\"&gt;\u65b0\u898f\u5546\u54c1\u306f\u3053\u3061\u3089&lt;\/a&gt;\r\n    &lt;div class=\"message\"&gt;{{message}}&lt;\/div&gt;\r\n\r\n(\u7701\u7565)\r\n<\/pre>\n<p>\u30fb&lt;a href&gt;\uff0e\uff0e\uff0e\uff1a\u5546\u54c1\u767b\u9332\u30da\u30fc\u30b8\u306e\u30ea\u30f3\u30af<\/p>\n<hr \/>\n<p>(3)items.py<\/p>\n<p>\u5546\u54c1\u767b\u9332\u3059\u308b\u305f\u3081\u306e\u51e6\u7406\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\" title=\"items.py\">from flask import (\r\n    Blueprint, render_template, request, redirect, url_for\r\n)\r\n\r\n(\u7701\u7565)\r\n\r\n@bp.route('\/newitem', methods=('GET', 'POST'))\r\ndef newitem():\r\n    if request.method == 'POST':\r\n        item_name = request.form['item_name']\r\n        price = request.form['price']\r\n        db = get_db()\r\n        db.execute(\"INSERT INTO items (item_name, price) VALUES (?, ?)\", (item_name, price))\r\n        db.commit()\r\n        return redirect(url_for('items.index'))\r\n\r\n    return render_template('newitem.html')<\/pre>\n<p>\u30fb2\u884c\u76ee\uff1aredirect, url_for\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u306b\u8ffd\u52a0<\/p>\n<p>\u30fb8\uff5e22\u884c\u76ee\uff1a\u5546\u54c1\u60c5\u5831\u3092\u6a5f\u80fd\u3092\u8ffd\u52a0\uff08\u8981\u6c42\u5f62\u5f0f\u306f\u300cPOST\u300d\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u306f\u300cnewitem\u300d\uff09<\/p>\n<p>\u30fb9\u884c\u76ee\uff1amethods\u3092\u8ffd\u52a0\uff08\u6700\u521d\u306b\u958b\u3044\u305f\u3068\u304d[GET]\u3068\u3001\u5024\u3092\u9001\u4fe1\u3057\u305f\u3068\u304d[POST]\uff09<\/p>\n<p>\u30fb10\uff5e15\u884c\u76ee\uff1aPOST\u306e\u5834\u5408\u3067\u306e\u51e6\u7406<\/p>\n<p>\u30fb17\u884c\u76ee\uff1aPOST\u4ee5\u5916\uff08GET\uff09\u306e\u5834\u5408\u3067\u306e\u51e6\u7406<\/p>\n<hr \/>\n<p>\u5b9f\u884c\u7d50\u679c\u306f\u4ee5\u4e0b\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u30fb\u691c\u7d22\u753b\u9762\uff08\u300c\u65b0\u898f\u5546\u54c1\u306f\u3053\u3061\u3089\u300d\u306e\u30ea\u30f3\u30af\u304c\u8ffd\u52a0\u3055\u308c\u3001\u9078\u629e\uff09<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1491\" src=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/1-5-250x300.png\" alt=\"\" width=\"250\" height=\"300\" srcset=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/1-5-250x300.png 250w, https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/1-5.png 416w\" sizes=\"(max-width: 250px) 100vw, 250px\" \/><\/p>\n<p>\u30fb\u767b\u9332\u753b\u9762\uff08\u5546\u54c1\u60c5\u5831\u3092\u5165\u529b\uff09\u3000\u21d2\u3000&#8221;\u308c\u3093\u3053\u3093&#8221;,&#8221;200&#8243;\u3092\u5165\u529b<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1492\" src=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/2-2-250x300.png\" alt=\"\" width=\"250\" height=\"300\" srcset=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/2-2-250x300.png 250w, https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/2-2.png 416w\" sizes=\"(max-width: 250px) 100vw, 250px\" \/><\/p>\n<p>\u30fb\u767b\u9332\u5f8c\uff08\u5546\u54c1\u60c5\u5831\u753b\u9762\u3078\u623b\u308b\uff09\u3000\u21d2\u3000&#8221;\u308c\u3093\u3053\u3093&#8221;,&#8221;200&#8243;\u304c\u8ffd\u52a0<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1493\" src=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/3-2-250x300.png\" alt=\"\" width=\"250\" height=\"300\" srcset=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/3-2-250x300.png 250w, https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/3-2.png 416w\" sizes=\"(max-width: 250px) 100vw, 250px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u4ee5\u4e0a\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u56de\u3067\u306fSQLite3\u306b\u767b\u9332\u3055\u308c\u305f\u5546\u54c1\u60c5\u5831\u3092\u691c\u7d22\u3059\u308b\u6a5f\u80fd\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u306f\u5546\u54c1\u60c5\u5831\u3092\u767b\u9332\u3059\u308b\u6a5f\u80fd\u3092\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3059\u3002 instance \u2514\u2500\u2500 create_db.py \u2514\u2500\u2500 itemdb.sqlite3 web&#8230;<a class=\"read-more-link button\" href=\"https:\/\/idealive.jp\/blog\/2019\/05\/20\/%e7%99%bb%e9%8c%b2%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b\/\">\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":9,"featured_media":1496,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,13],"tags":[],"class_list":["post-1485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","category-database"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/posts\/1485"}],"collection":[{"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/comments?post=1485"}],"version-history":[{"count":3,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/posts\/1485\/revisions"}],"predecessor-version":[{"id":1495,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/posts\/1485\/revisions\/1495"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/media\/1496"}],"wp:attachment":[{"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/media?parent=1485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/categories?post=1485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/tags?post=1485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}