{"id":568,"date":"2016-10-25T22:41:47","date_gmt":"2016-10-25T13:41:47","guid":{"rendered":"https:\/\/www.dogrow.net\/python\/?p=568"},"modified":"2021-01-27T09:52:04","modified_gmt":"2021-01-27T00:52:04","slug":"blog73","status":"publish","type":"post","link":"https:\/\/www.dogrow.net\/python\/blog73\/","title":{"rendered":"(73) WEB\u30d6\u30e9\u30a6\u30b6\u7d4c\u7531\u3067Python\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c"},"content":{"rendered":"<p>Python\u306e\u9ad8\u6a5f\u80fd\u4e14\u3064\u9ad8\u901f\u306a\u51e6\u7406\u3092WEB\u30a2\u30d7\u30ea\u3067\u4f7f\u7528\u3067\u304d\u308c\u3070\u3068\u3063\u3066\u3082\u5fc3\u5f37\u3044\u3002<br \/>\n\u4eca\u56de\u306fWEB\u30d6\u30e9\u30a6\u30b6\u7d4c\u7531\uff08PHP\u30da\u30fc\u30b8\u7d4c\u7531\uff09\u3067Python\u3092\u4f7f\u7528\u3057\u3066\u307f\u308b\u3002<\/p>\n<h1 class=\"my_h\">1. \u4ed5\u69d8<\/h1>\n<p>[Client\u5074] \u30d1\u30bd\u30b3\u30f3\u4e0a\u3067CSV\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3001n\u884cm\u5217\u306e\u6570\u5024\u30c7\u30fc\u30bf\u3092\u66f8\u3044\u3066\u304a\u304f\u3002<br \/>\n[Client\u5074] WEB\u30d6\u30e9\u30a6\u30b6\u3067\u8a08\u7b97\u7a2e\u5225\u3092\u5408\u8a08\u5024\u3001\u5e73\u5747\u5024\u3001\u6700\u5927\u5024\u3001\u6700\u5c0f\u5024\u306e\u4e2d\u304b\u3089\u9078\u629e\u3059\u308b\u3002<br \/>\n[Client\u5074] WEB\u30d6\u30e9\u30a6\u30b6\u3067CSV\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3002<br \/>\n[Server\u5074] CSV\u30d5\u30a1\u30a4\u30eb\u3068\u8a08\u7b97\u7a2e\u5225\u3092\u53d7\u3051\u53d6\u308b\u3002<br \/>\n[Server\u5074] Python\u30b9\u30af\u30ea\u30d7\u30c8\u306bCSV\u30d5\u30a1\u30a4\u30eb\u3068\u8a08\u7b97\u7a2e\u5225\u3092\u6e21\u3057\u3066\u5b9f\u884c\u3059\u308b\u3002<br \/>\n[Server\u5074] Python\u304b\u3089\u8a08\u7b97\u7d50\u679c\u3092\u53d7\u3051\u53d6\u308aHTML\u306b\u3057\u3066\u51fa\u529b\u3059\u308b\u3002<br \/>\n[Client\u5074] \u53d7\u3051\u53d6\u3063\u305fHTML\u3092\u8868\u793a\u3059\u308b\u3002<\/p>\n<h1 class=\"my_h\">2. \u30d7\u30ed\u30b0\u30e9\u30e0\u4f5c\u6210<\/h1>\n<h3 class=\"my_h\">index.php<\/h3>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n&lt;!DOCTYPE html&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n&lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text\/html; charset=utf-8&quot; \/&gt;\r\n&lt;TITLE&gt;\u30b5\u30f3\u30d7\u30eb&lt;\/TITLE&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;\/BODY&gt;\r\n\r\n&lt;?php\r\n  $cmd = (isset($_POST&#x5B;'cmd']))? $_POST&#x5B;'cmd'] : 0;\r\n  if($cmd &gt; 0){\r\n    if(is_uploaded_file($_FILES&#x5B;'upfile']&#x5B;'tmp_name'])){\r\n      move_uploaded_file($_FILES&#x5B;'upfile']&#x5B;'tmp_name'], 'tmp.csv');\r\n      exec(&quot;python csv_calc.py tmp.csv $cmd&quot;, $resp, $code);\r\n      echo $resp&#x5B;0];\r\n      unlink('tmp.csv');\r\n    }\r\n  }\r\n?&gt;\r\n\r\n&lt;hr \/&gt;\r\n&lt;form enctype=&quot;multipart\/form-data&quot; action=&quot;.\/&quot; method=post&gt;\r\n&lt;input type=&quot;file&quot; name=&quot;upfile&quot;&gt;&lt;br \/&gt;\r\n&lt;select name=&quot;cmd&quot;&gt;\r\n  &lt;option value=&quot;1&quot;&gt;\u5408\u8a08\u5024&lt;\/option&gt;\r\n  &lt;option value=&quot;2&quot;&gt;\u5e73\u5747\u5024&lt;\/option&gt;\r\n  &lt;option value=&quot;3&quot;&gt;\u6700\u5927\u5024&lt;\/option&gt;\r\n  &lt;option value=&quot;4&quot;&gt;\u6700\u5c0f\u5024&lt;\/option&gt;\r\n&lt;\/select&gt;\r\n&lt;input type=&quot;submit&quot; value=&quot;\u8a08\u7b97\u5b9f\u884c&quot;&gt;\r\n&lt;\/form&gt;\r\n\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;\r\n<\/pre>\n<h3 class=\"my_h\">csv_calc.py \uff08Python\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb\uff09<\/h3>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nimport sys\r\nimport numpy as np\r\n\r\n#---------------------------------\r\ndef calc_csv( fpath_csv, cmd ):\r\n    data = np.loadtxt( fpath_csv, delimiter=',' )\r\n    if cmd == 1:\r\n        ret = data.sum()\r\n    elif cmd == 2:\r\n        ret = data.mean()\r\n    elif cmd == 3:\r\n        ret = data.max()\r\n    elif cmd == 4:\r\n        ret = data.min()\r\n    else:\r\n        print &quot;invalid command&quot;\r\n        ret = 0\r\n    return ret\r\n\r\n#---------------------------------\r\n# argv&#x5B;1] : file path\r\n# argv&#x5B;2] : command 1:sum, 2:average, 3:max, 4:min\r\nif __name__ == '__main__':\r\n    ary_argv = sys.argv\r\n    fpath = ary_argv&#x5B;1]\r\n    cmd   = int(ary_argv&#x5B;2])\r\n    print calc_csv( fpath, cmd )\r\n<\/pre>\n<h1 class=\"my_h\">3. \u53c2\u8003<\/h1>\n<p>\u6b21\u306e\u6295\u7a3f <a href=\"https:\/\/www.dogrow.net\/python\/blog74\/\" rel=\"noopener noreferrer\">(74) WEB\u30d6\u30e9\u30a6\u30b6\u7d4c\u7531\u3067Python\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c#2<\/a> \u3067\u306f\u3001index\u30da\u30fc\u30b8\u81ea\u4f53\u3092 Python\u3067\u66f8\u304f\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a18\u3057\u3066\u3044\u308b\u3002\u305d\u3061\u3089\u3092\u5148\u306b\u6295\u7a3f\u3059\u3079\u304d\u3060\u3063\u305f\u304b&#8230;<\/p>\n<hr class=\"my_hr_bottom\">\n","protected":false},"excerpt":{"rendered":"<p>Python\u306e\u9ad8\u6a5f\u80fd\u4e14\u3064\u9ad8\u901f\u306a\u51e6\u7406\u3092WEB\u30a2\u30d7\u30ea\u3067\u4f7f\u7528\u3067\u304d\u308c\u3070\u3068\u3063\u3066\u3082\u5fc3\u5f37\u3044\u3002 \u4eca\u56de\u306fWEB\u30d6\u30e9\u30a6\u30b6\u7d4c\u7531\uff08PHP\u30da\u30fc\u30b8\u7d4c\u7531\uff09\u3067Python\u3092\u4f7f\u7528\u3057\u3066\u307f\u308b\u3002 1. \u4ed5\u69d8 [Client\u5074] \u30d1\u30bd\u30b3\u30f3\u4e0a\u3067CSV\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.dogrow.net\/python\/blog73\/\">\u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,26],"tags":[],"class_list":["post-568","post","type-post","status-publish","format-standard","hentry","category-python","category-web"],"views":24610,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/posts\/568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/comments?post=568"}],"version-history":[{"count":20,"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/posts\/568\/revisions"}],"predecessor-version":[{"id":3002,"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/posts\/568\/revisions\/3002"}],"wp:attachment":[{"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/media?parent=568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/categories?post=568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dogrow.net\/python\/wp-json\/wp\/v2\/tags?post=568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}