タグ

ブックマーク / nwpct1.hatenablog.com (17)

  • Core APIの概要とDjango REST Frameworkでの使い方 - c-bata web

    追記: この記事の内容はかなり古くなっています。翔泳社さんからDjangoの書籍を出版するこちらを読んで頂くのがおすすめです。 実践Django Pythonによる格Webアプリケーション開発 作者:芝田 将翔泳社Amazon Django Advent Calendar 2016 - Qiita 18日目の記事です。 Django REST Frameworkは、DjangoでRESTfulなAPIを提供するときに非常に人気のあるフレームワークです。 既に使ってるよという方も多くいらっしゃるのではないでしょうか。 日経電子版さんも業務でも活用しているようです。 この記事では、REST Framework自体の使い方とかはあまり話しません。 REST Framnworkの作者である @_tomcriestie さんが策定・開発しているCore APIの概要と使い方について、これまでの経緯

    Core APIの概要とDjango REST Frameworkでの使い方 - c-bata web
    peketamin
    peketamin 2019/07/19
  • Pythonで約100行のシンプルなWSGIサーバーを書いてみる

    エキスパートPythonプログラミング改訂2版 作者:Michal Jaworski,Tarek Ziade発売日: 2018/02/26メディア: 単行 はじめに — Webアプリケーションフレームワークの作り方 in Python の資料が最近になってホットエントリー入りし、思ったよりも多くの方に読んでいただけているようです。見返しているとWSGIサーバーを作りながらHTTPについて学べる章があってもいいかもとふと思いました。書くとすれば内容的には id:shimizukawa さんのPyCon JP 2018の発表をもう少し詳しく説明する資料になりそうな気がします。 PyCon JP 2018: Webアプリケーションの仕組み - 清水川のScrapbox とはいえ自分もWSGIサーバーを一度も書いたことがないので、気分転換にシンプルなWSGIサーバーを書いてみました。 4時間ぐら

    Pythonで約100行のシンプルなWSGIサーバーを書いてみる
    peketamin
    peketamin 2018/09/24
  • Django における認証処理実装パターン - c-bata web

    追記: 翔泳社さんからDjangoの書籍を出版するのでぜひ読んでみてください。 実践Django Pythonによる格Webアプリケーション開発 作者:芝田 将翔泳社Amazon この資料は DjangoCongress JP 2018で話した「Djangoにおける認証処理実装パターン」 の解説記事になります。 2019/04/08 追記: GithubのコードはPython3.7 Django2.2にupdateしています) 何年か前に Djangoのユーザー認証まとめ という記事を書きました。今でもコンスタントに100PV/dayくらいアクセスのある記事なのですが内容が古く、実装時にハマりやすい注意点にもあまり触れることができておらず、おすすめできる資料ではありません。今回はDjangoCongress JPにて発表の機会をいただけたのですが、この機会に認証処理についてまとめ直すと同

    Django における認証処理実装パターン - c-bata web
  • エキスパートPythonプログラミング 改訂2版が発売されました - c-bata web

    改訂2版と書いてあるように、このには初版があり日語の翻訳書は2010年頃に出版されていました。 自分がPythonを書き始めたのが2014年頃だったのですが、当時通っていた学校の図書館で見つけてこのを借りたことがあります。 プログラミングの勉強を初めたばかりの自分は、ほとんど何も理解出来ないまま返却したのを今でも覚えています。 今回は縁あって初版の翻訳メンバーである稲田さん、渋川さん、清水川さん、森さんの4名と一緒に翻訳をすすめることになりましたが、4年前には何も理解できなかった自分がこれだけのベテラン陣と一緒に改訂2版の翻訳に関われていると思うと少し感慨深いです。 さて、初版から大幅に加筆され520ページとボリュームもあるので最初から最後まで読める人はあまりいないと思います。 必要になったらそのときに読んでみようと思っている方も多いと思いますが、参考までに自分が特に気に入っている

    エキスパートPythonプログラミング 改訂2版が発売されました - c-bata web
    peketamin
    peketamin 2018/02/23
  • PyCharmで開発する手順メモ(Git, Virtualenv) - c-bata web

    独学プログラマー Python言語の基から仕事のやり方まで 作者: コーリー・アルソフ,清水川貴之監訳,清水川貴之,新木雅也出版社/メーカー: 日経BP社発売日: 2018/02/24メディア: 単行この商品を含むブログを見る はじめに この前PyCharmのProfessionalを入れたので、PyCharmの使い方を確認しながらプログラム書いてみる。この記事は、今後PyCharmで開発を行うときにスムーズに開発するためのメモなので僕以外には分かりにくいかもです。ちなみにPyCharmの設定や機能については以前まとめました。 VimからPyCharmに乗り換え(機能の把握と設定) - c-bata web プロジェクトの作成 PyCharmを立ち上げてProject name等を入力。InterpreterはドロップダウンからCreate VirtualEnvを選択し、search_

    PyCharmで開発する手順メモ(Git, Virtualenv) - c-bata web
    peketamin
    peketamin 2017/06/21
  • Electronでニコ動のコメントみたいにTweetを表示するアプリつくった - c-bata web

    知り合いのエンジニア(rayさん)がGTK3で作っていた nsd というのがあるんですが、結構いい感じなのでMacでも動くものが欲しかった。 Electronで似たようなことが出来ないか調べてみると、GTK3とかに比べて簡単にできそうだったので作ってみた。 ポイントは: 常に最前面にtweetが表示される マウスのイベントが後ろに透過する コーディングだったり他の作業が問題なく出来る 今度、カンファレンスや勉強会で話す時にハッシュタグ表示してみます。 ロゴも描いてみた マウスのイベントの透過について rayさんのnsdとかの場合、tweetのテキストを囲うだけのとても小さくて透明なウィンドウを用意していたらしい。こうすることで文字以外のところをクリックすると後ろにマウスのクリックイベントとかが通る仕組み。 透明なウィンドウを作れるGUIツールキットはたくさんあるみたいなのですが、Elect

    Electronでニコ動のコメントみたいにTweetを表示するアプリつくった - c-bata web
    peketamin
    peketamin 2016/10/12
  • PIPEによるプロセス間通信とselect, poll, epollの話 - c-bata web

    エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ) 作者: Michal Jaworski,TarekZiade,稲田直哉,芝田将,渋川よしき,清水川貴之,森哲也出版社/メーカー: ドワンゴ発売日: 2018/02/26メディア: Kindle版この商品を含むブログを見る 先日、 tokibito 先生(id:nullpobug)と勉強していたpipe, select, poll, epollあたりについてメモ。 os.fork os.fork : 子プロセス(child process)をつくれる。 import os a = 0 print(a) os.fork() a += 1 print(a) 子は親の複製。親のデータ、ヒープ、スタックの各空間の複製を取得。 メモリのこれらの部分は共有されないので、実行結果は次のようになる(テキストセグメントは共有される)。

    PIPEによるプロセス間通信とselect, poll, epollの話 - c-bata web
  • Feedy(Python)でRSSフィードをいい感じに処理する - c-bata web

    最近、RSSフィードをfetchしてゴニョゴニョ処理したいと思うことが多かったのですが、特に気にいるライブラリが無かった *1 のでFeedyというライブラリを作ってみました。 個人的には結構気に入っていて、便利に使えているので紹介します。 もともと欲しかった機能・特徴としては、 デコレータベースでシンプルに記述できる 当然、前回fetchした時間からの更新分のみの取得も可 RSSフィードのリンク先のhtmlも自動で取得して、好きなHTMLパーサ(個人的にはBeautifulSoup4)でいい感じに処理したい 具体的には↓のように記述します from feedy import Feedy feedy = Feedy('./feedy.dat') # 前回フェッチした時間とかを格納(Redisとかに自分で置き換えることも可能) @feedy.add('https://www.djangopa

    Feedy(Python)でRSSフィードをいい感じに処理する - c-bata web
    peketamin
    peketamin 2016/05/26
  • Golangでつくる検索エンジン(Webクローラ、MongoDB、Kagome、gin) - c-bata web

    最近、Golangを書き始めたので勉強として、1年半ほど前にPythonで作っていたWebクローラと検索エンジンをGolangで実装してみた。WebフレームワークはFlaskの代わりにgin、Mecabの代わりにKagomeを使用、Datastoreは前回と同じくMognoDBを使ってます。 GitHub - c-bata/gosearch: Web crawler and Search engine in Golang. 今回のコード Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask) - c-bata web 以前書いたPython版検索エンジンのブログ記事 基的に実装はこれと大きく変わりません 今回はHTML書くの面倒だったので、フロントはginでJSON返すだけにしました。 以下使ったライブラリやGoに関するメモ 可変長引数の挙動 ス

    Golangでつくる検索エンジン(Webクローラ、MongoDB、Kagome、gin) - c-bata web
    peketamin
    peketamin 2016/04/10
  • Python製WebフレームワークのURL DispatcherとType Hintsの活用について - c-bata web

    少し前から趣味で実装してるKobinというWebアプリケーションフレームワークのURL Dispatcherの実装をする時に、BottleやDjangoを参考にしながら考えてみました。 これらの比較とType Hintsを利用したKobinのURL Dispatcherの実装についてまとめます。 (追記) リバースルーティング ちょっと長いですが、追記です。結論としては元々紹介していた正規表現ベースのルーティングとは違う方法をKobinで採用しました この記事では正規表現によるルーティングについて解説していたのですが、このルーティング方法は逆引きが少し難しくなります(Djangoは正規表現ベースの逆引きですが、自由度の高い正規表現からURLを生成するために一部妥協しているところもあるようです)。 実際の問題では正規表現が必要となるほど複雑なURL構成になることは稀かもしれません。 逆引きの

    Python製WebフレームワークのURL DispatcherとType Hintsの活用について - c-bata web
    peketamin
    peketamin 2016/02/12
  • VimからPyCharmに乗り換え(機能の把握と設定) - c-bata web

    はじめに 現在、vimrcはまだ500行ほどだけどすでにメンテが負担になってしまっている。試しにPyCharm使ってみたらびっくりするくらい使いやすかったので 今回は、PyCharmの設定と便利機能の把握、ついでにvimrcもコンパクトにする。 参考資料 PyCon JP 2014で清水川さんの発表がとても参考になった。。 CH06 PyCharm活用術 (ja) - YouTube PyCharm 活用術 (ja) この発表聞いてPro版買おう!とか思ってたら学生用のライセンスがあった(Free for students:)。学校のメールアドレスと名前を入れたら登録できた。後はJetBrainsのアカウントを作ってからPyCharm Professionalをダウンロード・インストール、起動してからサインインすれば使えました。 PyCharmの設定・プラグイン テーマの変更 Androi

    VimからPyCharmに乗り換え(機能の把握と設定) - c-bata web
  • Pythonにおけるハッシュ計算 - c-bata web

    エキスパートPythonプログラミング改訂2版 作者: Michal Jaworski,Tarek Ziade,稲田直哉,芝田将,渋川よしき,清水川貴之,森哲也出版社/メーカー: KADOKAWA発売日: 2018/02/26メディア: 単行この商品を含むブログを見る はじめに ADVENTARのPythonアドベントカレンダー 4日目 です。 今作っているもの で後々必要になるかなと思い調べていたハッシュ関数について書きます。 ハッシュ関数について ハッシュ関数は、任意長のデータ x を与えると固定長のビット列 y を返す関数です。 イメージとして↓のような感じになると思います。 H(x) -> y # Hはハッシュ関数、xは任意長のデータ、yは固定長のビット列 この時の特性として y から x を特性するのが困難な一方向性関数である必要があり、データの正当性を検証する際などに使われ

    Pythonにおけるハッシュ計算 - c-bata web
    peketamin
    peketamin 2015/12/08
  • PythonのWebアプリ動かす時にやったこととかメモ - c-bata web

    2018/07/26 追記: Python 3.7 で更新 はじめに ISUCONとかコンテスト系のイベントでPythonのWebアプリを出来るだけ早くセットアップしたい時があるので自分なりの手順とかメモ。自分が後で見返す用なのでまとまってないです。データベースに関しては別の記事に分けました。 nwpct1.hatenablog.com ログインしてまずやること Gistにセットアップ用のシェルスクリプトを置いておく。 こういうセットアップはAnsibleを使ってもいいかなって思ったけどチューニング系のイベントだと、複数台のサーバを使うこともないし何度もデプロイするから冪等性が保証されてほしいとかもない気がするのでシェルスクリプトを選択。これから紹介するコマンド群をGistに保存して、 curl GIST_URL | sh みたいに実行する。それも面倒なときはシェル上にコピペしてください。

    PythonのWebアプリ動かす時にやったこととかメモ - c-bata web
    peketamin
    peketamin 2015/10/23
  • Djangoのユーザ認証まとめ - c-bata web

    追記: 使用しているDjangoのバージョンをはじめ、いくつか古くなってきている点があります。DjangoCongress JP 2018で認証に関する発表を行ったのですが、ブログ記事も用意しています。そちらを参照してください nwpct1.hatenablog.com 追記終わり Djangoでユーザ認証をしたかったので調べてみると,DjangoではUserモデルがはじめから用意されているらしい.そこでDjangoの提供する機能をそのまま使ってログイン・ログアウトを実装してみた. さらに調べてみるとpython-social-authというライブラリを使えば、TwitterやFacebook,GoogleGithub等のアカウントを使ったOAuth認証が簡単に実装できるみたいなのでそれも試しておく. ソースコードはGithubで公開してます. https://github.com/c-

    Djangoのユーザ認証まとめ - c-bata web
    peketamin
    peketamin 2015/01/11
    Djangoのユーザ認証まとめ - Programming Log
  • Djangoのテストの書き方について勉強したのでまとめる - c-bata web

    追記: この記事の内容はかなり古くなっています。翔泳社さんからDjangoの書籍を出版するので、ぜひ読んでみてください。 実践Django Pythonによる格Webアプリケーション開発 (Programmer’s SELECTION) 作者:芝田 将翔泳社Amazon はじめに この記事はPython Advent Calendar 2014の12日目の記事です. 昨日は「SushiYasukawa」さんによる(Pythonによる簡単なLispインタープリタ実装方法(四則演算編)) - Python, web, Algorithm 技術的なメモでした. 最近Djangoで何か作ったという記事をよく見かけます. 次のQiitaの記事を参考にDjangoの勉強を始められた方が多いようなので、僕も始めてみました. Python Django入門 (1) - Qiita Python Djan

    Djangoのテストの書き方について勉強したのでまとめる - c-bata web
    peketamin
    peketamin 2014/12/30
  • Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask) - c-bata web

    検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏 作者:山田 浩之,末永 匡発売日: 2014/09/25メディア: 単行(ソフトカバー) (この記事で紹介しているのはTF-IDFとかの計算もない簡素なものです。) はじめに Webサービスのプログラミングに必要なことのだいたいは、スクレイピングに学んだ - Line 1: Error: Invalid Blog('by Esehara' ) この前↑の記事をみかけました。クローリングやスクレイピングは、色々と応用が効きそうなのでしっかり勉強したい。 PythonではScrapyという有名なクローリング・スクレイピング用のライブラリがありますが、今回は勉強としてScrapyを使わずに実装してみる。流れとしては以下のとおり Webクローラの構築 Mecabで日語の形態素解析 検索エンジンの構築 データをMongoDBに格納 Fl

    Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask) - c-bata web
  • Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web

    はじめに 今までテストを書くどころかデバッガを使ったことがなかったのですが、id:Kesinさんの↓の記事を読んで、このままではマズイと思ったので勉強しました。 研究のプログラミングにおける悲劇を無くすためのGitとテスト デバッガ Pythonには標準でpdbというデバッガが付いてるらしい。 pdbPython デバッガ Pythonのpdbモジュールでデバッグする こちらによると、 使い方はいろいろあるみたいだけど、とりあえず set_trace は便利なのですぐにでも使ってみるべき。pdb.set_trace() でデバッグ用の対話シェルが実行される。 とのこと。他のサイトでもプログラムの気になる所にpdb.set_trace()を埋め込んで使っていました。 import pdb pdb.set_trace() 使い方 PyCon JP 2012 hands-on セッション/

    Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web
    peketamin
    peketamin 2014/06/23
  • 1