{"id":1529,"date":"2019-05-30T08:02:09","date_gmt":"2019-05-29T23:02:09","guid":{"rendered":"http:\/\/idealive.jp\/blog\/?p=1529"},"modified":"2019-05-30T08:02:09","modified_gmt":"2019-05-29T23:02:09","slug":"%e6%9b%b4%e6%96%b0%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\/30\/%e6%9b%b4%e6%96%b0%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b\/","title":{"rendered":"\u66f4\u65b0\u6a5f\u80fd\u3092\u8ffd\u52a0\u3059\u308b"},"content":{"rendered":"<p>\u524d\u56de\u3067\u306fSQLite3\u306b\u5546\u54c1\u60c5\u5831\u3092\u65b0\u898f\u767b\u9332\u3059\u308b\u6a5f\u80fd\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u306f\u5546\u54c1\u60c5\u5831\u3092\u66f4\u65b0\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\r\n|  \u2514\u2500\u2500 updateitem.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)updateitem.html<\/p>\n<p>\u5546\u54c1\u60c5\u5831\u3092\u66f4\u65b0\u3059\u308b\u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\" title=\"updateitem.html\">{% extends 'base.html' %}\r\n\r\n{% block title %}\u5546\u54c1\u8a73\u7d30{% endblock %}\r\n\r\n{% block content %}\r\n    &lt;h2&gt;\u5546\u54c1\u8a73\u7d30&lt;\/h2&gt;\r\n    &lt;form class=\"itemform\" 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\" value={{data['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\" value={{data['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=\"\u66f4\u65b0\"&gt;&lt;\/td&gt;\r\n            &lt;\/tr&gt;\r\n        &lt;\/table&gt;\r\n    &lt;\/form&gt;\r\n{%  endblock %}\r\n<\/pre>\n<p>\u30fb7\uff5e21\u884c\u76ee\uff1a\u5546\u54c1\u60c5\u5831\u306e\u66f4\u65b0\u6a5f\u80fd\u3092\u8ffd\u52a0\uff08\u8981\u6c42\u5f62\u5f0f\u306f\u300cPOST\u300d\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u306f\u300citemform\u300d\uff09<\/p>\n<p>\u30fb11,15\u884c\u76ee\uff1aitems.py\u304b\u3089\u53d6\u5f97\u3057\u305f\u5546\u54c1\u540d\u3001\u4fa1\u683c\u3092\u8a2d\u5b9a<\/p>\n<hr \/>\n<p>(2)index.html<\/p>\n<p>\u66f4\u65b0\u30da\u30fc\u30b8\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    &lt;table&gt;\r\n        &lt;tr class='keyname'&gt;\r\n            &lt;th&gt;\u5546\u54c1\u540d&lt;\/th&gt;\r\n            &lt;th&gt;\u4fa1\u683c&lt;\/th&gt;\r\n        &lt;\/tr&gt;\r\n        {% for item in items %}\r\n            &lt;tr&gt;\r\n            &lt;td&gt;&lt;a href=\"{{url_for('items.update', item_name=item['item_name'])}}\"&gt;{{item['item_name']}}&lt;\/a&gt;&lt;\/td&gt;\r\n            &lt;td&gt;{{item['price']}}&lt;\/td&gt;\r\n        {% endfor %}\r\n    &lt;\/table&gt;\r\n\r\n(\u7701\u7565)<\/pre>\n<p>\u30fb10\u884c\u76ee\uff1a&lt;a href&gt;\uff0e\uff0e\uff0e\uff1a\u66f4\u65b0\u30da\u30fc\u30b8\u3078\u306e\u30ea\u30f3\u30af\u306b\u5909\u66f4<\/p>\n<hr \/>\n<p>(3)items.py<\/p>\n<p>\u5546\u54c1\u3092\u66f4\u65b0\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\">(\u7701\u7565)\r\n\r\n@bp.route('\/items\/&lt;item_name&gt;', methods=('GET', 'POST'))\r\ndef update(item_name):\r\n    if request.method == 'POST':\r\n        item_name_new = request.form['item_name']\r\n        price = request.form['price']\r\n        db = get_db()\r\n        db.execute(\"UPDATE items SET item_name=?, price=? WHERE item_name=?\", (item_name_new, price, item_name))\r\n        db.commit()\r\n        return redirect(url_for('items.index'))\r\n    else:\r\n        db=get_db()\r\n        searchdata = db.execute(\r\n            \"SELECT * FROM items WHERE item_name like '%\"+item_name+\"%'\").fetchone()\r\n\r\n        return render_template('updateitem.html', data=searchdata)\r\n\r\n(\u7701\u7565)<\/pre>\n<p>\u30fb5\uff5e11\u884c\u76ee\uff1aPOST\u306e\u5834\u5408\u3000\u21d2\u3000\u5546\u54c1\u60c5\u5831\u306e\u66f4\u65b0\u51e6\u7406<\/p>\n<p>\u30fb12\uff5e17\u884c\u76ee\uff1aPOST\u4ee5\u5916\uff08GET\uff09\u306e\u5834\u5408\u3000\u21d2\u3000\u5546\u54c1\u60c5\u5831\u3092\u53d6\u5f97\u3057\u3066\u66f4\u65b0\u30da\u30fc\u30b8\u3078\u9077\u79fb\uff08\u60c5\u5831\u3092\uff11\u4ef6\u53d6\u5f97\u3059\u308b\u305f\u3081\u3001fetchone\u3067\u53d6\u5f97\uff09<\/p>\n<hr \/>\n<p>\u5b9f\u884c\u7d50\u679c\u306f\u4ee5\u4e0b\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u30fbTOP\u753b\u9762\uff08\u300c\u5546\u54c1\u540d\u300d\u306b\u66f4\u65b0\u30da\u30fc\u30b8\u3078\u306e\u30ea\u30f3\u30af\u304c\u8ffd\u52a0\uff09<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1530\" src=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/1-6-286x300.png\" alt=\"\" width=\"286\" height=\"300\" srcset=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/1-6-286x300.png 286w, https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/1-6.png 502w\" sizes=\"(max-width: 286px) 100vw, 286px\" \/><\/p>\n<p>\u30fb\u66f4\u65b0\u753b\u9762\uff08\u5546\u54c1\u60c5\u5831\u3092\u5909\u66f4\uff09\u3000\u21d2\u3000&#8221;\u30ad\u30e3\u30d9\u30c4&#8221;,&#8221;198&#8243; \u304b\u3089 &#8220;\u30ad\u30e3\u30d9\u30c4\uff08\u5343\u5207\u308a\uff09&#8221;,&#8221;100&#8243;\u306b\u5909\u66f4<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1531\" src=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/2-3-286x300.png\" alt=\"\" width=\"286\" height=\"300\" srcset=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/2-3-286x300.png 286w, https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/2-3.png 502w\" sizes=\"(max-width: 286px) 100vw, 286px\" \/><\/p>\n<p>\u30fb\u66f4\u65b0\u5f8c\uff08\u5546\u54c1\u60c5\u5831\u753b\u9762\u3078\u623b\u308b\uff09\u3000\u21d2\u3000&#8221;\u30ad\u30e3\u30d9\u30c4\uff08\u5343\u5207\u308a\uff09&#8221;,&#8221;100&#8243;\u306b\u66f4\u65b0<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1532\" src=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/3-3-286x300.png\" alt=\"\" width=\"286\" height=\"300\" srcset=\"https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/3-3-286x300.png 286w, https:\/\/idealive.jp\/blog\/wp-content\/uploads\/2019\/05\/3-3.png 502w\" sizes=\"(max-width: 286px) 100vw, 286px\" \/><\/p>\n<p>\u4ee5\u4e0a\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u56de\u3067\u306fSQLite3\u306b\u5546\u54c1\u60c5\u5831\u3092\u65b0\u898f\u767b\u9332\u3059\u308b\u6a5f\u80fd\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u306f\u5546\u54c1\u60c5\u5831\u3092\u66f4\u65b0\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 \u2514\u2500&#8230;<a class=\"read-more-link button\" href=\"https:\/\/idealive.jp\/blog\/2019\/05\/30\/%e6%9b%b4%e6%96%b0%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":[19,13],"tags":[],"class_list":["post-1529","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","category-database"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/posts\/1529"}],"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=1529"}],"version-history":[{"count":3,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/posts\/1529\/revisions"}],"predecessor-version":[{"id":1535,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/posts\/1529\/revisions\/1535"}],"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=1529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/categories?post=1529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/idealive.jp\/blog\/wp-json\/wp\/v2\/tags?post=1529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}