タグ

ブックマーク / coreblog.org (157)

  • みんなのPython Webアプリ編 - はじめに | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    このは,オブジェクト指向のスクリプト言語Pythonの解説書です。Webアプリケーションの作成を通じて,Pythonの使い方や活用方法を学んでいただくのが書のねらいです。立場的には,拙著みんなのPythonの続編になります。インストール方法やPythonの文法など,基的なことについても触れていますので,Pythonを知らない人でも楽しんでいただける内容になっています。 「みんなのPython」と同じく,書の構成は積み重ね式になっています。学習を進めてゆくに当たって必要となる知識や技術を,基的なことから順を追って解説しています。Pythonの基はもちろん,Webの仕組みやWebアプリケーションの動作する原理からはじまり,比較的高度なWeb開発の手法にいたるまでを解説しています。書が想定読者としているのは,Pythonに興味がある方と,W

  • みんなのPython Webアプリ編 - Webアプリケーションと認証 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    Webアプリケーションの中には、ユーザ名とパスワードを使ってログインを行ってから機能が利用できるようになるものがあります。認証を行うことによって、誰がWebアプリケーションを使っているかが明確になり、権利を持った利用者にのみ、特定の機能を利用させる、といったことが可能になります。ここでは、Webアプリケーションで認証の処理を行うための方法について考えてみたいと思います。 認証の基 私たちは日常生活でさまざまな認証を行います。たとえば、キャッシュカードを使いキャッシュディスペンサーで現金を下ろすときには、暗証番号を使った認証を行います。家のドアを開け閉めするとき、鍵を使うのも一種の認証と言えるかもしれません。このように、自分以外の人間やモノに対して、何らかの手段を使って自分自身であることを認めてもらう行為のことを認証と呼びます。 認証を行う

  • みんなのPython Webアプリ編 - フォームの処理 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー URLにクエリを埋め込み、Webサーバ上で動くプログラムに値を渡す方法は簡易で便利ですが、欠点が多いのも事実です。長い文字列や複雑な値を渡すのには不向きですし、だいいちアプリケーションの利用者にとって扱いやすい方法とは言えません。そこでここでは、「フォーム(Form)」を使ってもう少し気の利いたUIを作ってみましょう。 フォームを使ってWebサーバに値を渡す 先ほど作った13日の金曜日を数えるプログラムでは、クエリとして西暦を渡していました。クエリを書き換えて西暦を指定するのはとても不便です。ここでは、フォームを使って西暦を入力、指定できるよ

  • 30秒で分かるPythonコード集 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 30 secounds of Python codeは,その名の通り「30秒で理解できるPythonのコード集」。リスト要素のソートやシャッフル,数値列の平均の計算など,親しみやすい課題やアルゴリズムをPythonで書いたコード集。それぞれのコードは短いので,プログラムの挙動を文字通り「30秒」で理解できる。 たとえば,リスト要素のシャッフル(ランダムな並べ替え)のコードを見てみよう。 from copy import deepcopy from random import randint def shuffle(arr): temp_arr = deepcopy(arr) m = l

  • 新著「みんなのIoT」は,いちばん分かりやすいPython入門書です | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 「みんなのPython」はおかげさまで大好評を頂いているようで当にありがとうございます。外国語版が出るとか出ないとかいう話があって,渾身のネタの数々がどう料理されるのかが目下の感心どころです。 「わかりやすい」「読みやすい」と好評を頂いているみんPyですが,たまにプログラミング初心者には難しい,というご意見を頂くこともあります。それが気になっていたので,プログラミング経験がなくてもエントリーしやすい万人向けのPython入門書を書きました。 9割くらいの人は何を言っているのか分からなくて口をあんぐりと開けてると思うけど,まあおじさんの話をもう少し聞いてくれ。「IoTと言えばハード」と

  • みんなのPython Webアプリ編 - セキュリティホールへの対処 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Webアプリケーションを使う上で、起こりうることをすべて想定してプログラムを作れば、原理的にはセキュリティホールはなくなるはずです。しかし、実際にそのようなプログラムを作るのはとても難しいか、ほとんどの場合は不可能といってよいでしょう。 そのため、セキュリティホールを出にくくするような定石をよく知り、活用する、という対策が取られます。セキュリティホールにはいくつかのパターンがあります。そのため、取るべき対策のパターンも限られています。 先ほど例に挙げたようなセキュリティホールが発生する原因として考えられるのは、Webアプリケーションで扱う文字

  • omake

    オマケ : プログラミング力上達のコツ¶このNotebookでは,拙著を読んで,その後どうすんだ,ということについて,書籍には載せないような砕けたかんじで書いてみたいと思います。プログラミングを上達させるためのコツについて,つらつら書いてみました。どうぞ。 目標を設定しよう¶まずは,Pythonを使ってなにがしたいのか,ゴールを明確にしましょう。 「Webアプリを作りたい」「Raspberry PiでIoTデバイスを作りたい」「人工知能を活用したい」「データ分析をしたい」など,できるだけ具体的な目標を立てましょう。 「世の中を変えたい」「お金を稼ぎたい」「異性にモテたい」「とにかくビッグになりたい」というような抽象的な目標をたててはいけません。 煩悩は知的成長を助けないのです。 簡単なことからはじめよう¶目標を立てたら,目指す方向に向かって,ゆっくりとでいいので歩き始めましょう。 プログラ

  • Python初学者向けビジュアルデバッガ birdseye | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 初学者にとってプログラミングを難しくしている理由の一つは,プログラムが動いている様子を想像しづらい,という点です。プログラムに,変数,ループや条件分岐があるので,状態によって実行結果が変わります。同じプログラムでも,与えられる条件や内部状態によって違った動きをします。 熟練したプログラマであれば,条件による挙動の変化や内部状態の境界値を巧みに脳内で想像しながら,すいすいとプログラムを作ってゆくことができます。しかし,初心者にはそのようなことが難しい。そのため,とりあえずプログラムを書いてみて動かしてみるのですが,内部状態の遷移による挙動の変化をうまくイメージできないので,間違えるし,ま

  • プログラミングはなぜ難しいのか | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 4月19日(水)に開催される勉強会にお呼ばれして,お話をすることになった。10年間多くの方に読んで頂いているPythonの入門書を書いている関係もあって,つねづね「プログラミングはなぜ難しいのか」について考えたり調べたりすることが多いのだけど,当日はそのことも含め,どうすればよりよく学習できるのか,プログラミングとは何か,ということなどにも言及したいと思っている。 プログラミングが難しいのは,一言で言うと「ロジックの塊」だから,ということなんだけど,そうすると「じゃあ論理的な思考が得意な人だけがプログラミングやればいいじゃん」みたいな話になりかねないので,もう少し砕いて考えてみたいと思

  • マサカリが無かったらみんなのPython第四版も無かったよな〜,という話 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー マサカリも受け方で血肉になるよ,という話をします。 しばらく前,みんなのPython第三版のAmazonレビューに誤字のリストを投げた人がいた。誤字があるのは著者として読者の皆様に大変申し訳ない。実際はコスト的に時間あんまかけられないとか諸事情があるのだけど,とにかく恥ずかしい話である。なお,誤字を報告しても連絡が無い,というのは常識的に考えても当かどうか微妙だ。事実,読者からの質問や誤字の情報については,定期的に編集者の方から連絡をいただいていた。 そうこうしているうちに,今年の初め頃,SBクリエイティブ編集部から改訂のお話をいただいた。 普通,技術書の改訂ってあんまり時間かけない

  • プログラミング力向上のコツ - みんなのPython第四版のオマケ | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー みんなのPython 第四版のサンプルコードを公開に向け整備していたとき,ちょっとしたオマケの文章があるといいかなと思って書いた見たところ,一部に好評だったので公開してみたいと思います。 オマケ : プログラミング力上達のコツ このNotebookでは,拙著を読んで,その後どうすんだ,ということについて,書籍には載せないような砕けたかんじで書いてみたいと思います。プログラミングを上達させるためのコツについて,つらつら書いてみました。どうぞ。 目標を設定しよう まずは,Pythonを使ってなにがしたいのか,ゴールを明確にしましょう。 「Webアプリを作りたい」「Raspberry Piで

  • Pythonで嫁を見つけた話 - みんなのPython第四版に寄せて | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー まもなく発刊される拙著みんなのPython 第四版の改訂向け執筆を終えた。 初版の発売は2006年で,今年はちょうど10年目になる。そこでふと,もしPythonを使っていなかったらどうなったろう,と考えてみた。そして重大なことに気づいた。 みんなのPythonを書く少し前,2005年ごろの僕は,今以上に後先考えないで行動するオッサンだった。当時まだ日では無名に近かったPythonのより新し情報を仕入れ,場のオープンソース関連カンファレンスに行って技術の成長点の雰囲気を味わうべく,ワシントンDCで開催されたPyCon USに行ってみよう,と突然思ったのだった。今以上に英語ができなかっ

  • Pythonのプログラムをワンライナー化するOnelinerizerがいろんな意味ですごい | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのプログラムを構成する要素には大きく分けて「式(Expression)」と「文(Statement)」がある。式とは演算式や比較式,オブジェクトのリテラル,関数呼び出しなど。一方,文は,if文,for文や関数定義,クラス定義やモジュール/パッケージのインポート,そして代入,など。式は改行を要求しないので,一行にいくらでも連ねることができるけど,文は改行や,しばしばインデントを伴うブロックを要求する。 Pythonは文と式がきっかり分かれている。そんなわけで,Pythonではプログラムを一行で書くいわゆる「ワンライナー」がつくりにくいと言われている。Pythonでワンライナー

  • Pythonのプログラムをワンライナー化するOnelinerizerがいろんな意味ですごい | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのプログラムを構成する要素には大きく分けて「式(Expression)」と「文(Statement)」がある。式とは演算式や比較式,オブジェクトのリテラル,関数呼び出しなど。一方,文は,if文,for文や関数定義,クラス定義やモジュール/パッケージのインポート,そして代入,など。式は改行を要求しないので,一行にいくらでも連ねることができるけど,文は改行や,しばしばインデントを伴うブロックを要求する。 Pythonは文と式がきっかり分かれている。そんなわけで,Pythonではプログラムを一行で書くいわゆる「ワンライナー」がつくりにくいと言われている。Pythonでワンライナー

  • みんなのPython 第三版 サンプルコード | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー

  • みんなのPythonサポートWeb ― TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー ビットコインなどの仮想通貨などで使われているブロックチェーン技術の入門書を書きました。新しい技術を学ぶことの楽しさを伝えられたら,著者として嬉しいです。 オブジェクト指向スクリプト言語Pythonの入門書「みんなのPython 第四版」のサポート用のサイトです。 Windowsでインタラクティブシェルを正しく立ち上げる方法 第四版のサンプルコード 第四版の正誤表こちら 第三版,第二版 書でインストールする「Anaconda」のダウンロード用URLが変わっています。下記URLからダウンロードしてください。 https://www.anaconda.com/distribution/ 初

  • みんなのPython Webアプリ編 - バリデータを作る | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー バリデーションチェックの処理の実体は単純な文字列の検査です。バリデーションチェックの処理の内容はそれほど難しくなく、バリデータも比較的簡単に作れます。ここでは、簡単なバリデータを作ってみましょう。 まず、バリデータの設計について考えてみます。チェックすべき値を受け取り、正しい値かどうかを結果として返すのがバリデータに求められる機能です。このような単純な機能であれば関数として実装してもよさそうですが、のちのちのことを考えてクラスとして実装することにしましょう。バリデーションチェックを実行するためには、まずバリデータのクラスインスタ

    ats2019
    ats2019 2016/02/22
  • みんなのPython Webアプリ編 - フォーム認証の機能を作る | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 実際にフォーム認証の仕組みを作ってみましょう。これまで作ってきたテンプレートエンジンやWebアプリケーションを活用して、フォーム認証の仕組みを作ります。 先ほど作ったWebアプリケーションでは、モジュールに定義した関数に、デコレータを設置するとリクエストに応答するように関数を加工できました。同じように、デコレータを使ってアクセス時に認証が必要な関数が設定できると便利です。今回はデコレータを活用して、アクセスするためにフォーム認証が必要な関数を作ってみましょう。 今回は必要なすべてのコードを1つの「authentication.py」というモジュ

    ats2019
    ats2019 2016/02/19
  • みんなのPython Webアプリ編 - PythonのスクリプトをWebサーバの中で動かす | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー http.serverモジュールでは、Pythonで書かれたプログラムをWebサーバの中で実行することもできます。その機能を使うと、Webサーバを用意したり設定ファイルを編集することなしに、PythonでWebアプリケーションを作ることができます。Pythonがインストールされたパソコンだけがあればよいので、とても手軽にWebアプリケーションを作って試すことができます。 先ほどスクリプトファイルとHTMLファイルを設置したフォルダに、別のスクリプトファイルを設置してください。 List03 cgiserver.py :::python i

    ats2019
    ats2019 2016/02/17
  • みんなのPython Webアプリ編 - バリデータとウィジェット |フォーム処理の抽象化 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー テンプレートエンジンやO/Rマッパーを作ることで、Webアプリケーションのプログラムがシンプルになりました。ここでは、高度で使いやすいWebアプリケーションに欠かせないフォームの処理をより手軽に作る方法について考えてみたいと思います。 バリデータの利用 データの入力を行うWebアプリケーションでは、入力値のチェック処理が欠かせません。フォームのようなUIに入力された値をプログラムの側でチェックし、期待される値が入力されているかどうかを確かめるわけです。このような処理はバリデーション(妥当性)チェックと呼ばれています。 たとえば、W

    ats2019
    ats2019 2016/01/27