タグ

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

  • 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
  • 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
    lEDfm4UE
    lEDfm4UE 2016/10/09
  • #pyconjp でWeb(WSGI)フレームワークの作り方について話してきました - c-bata web

    昨年のPyConJPでは pandas-validator について話していたのですが、今回はトークセッションをしてきました。 Twitter見てると早速スライドを見ながら実装してくださってる方もいらっしゃって嬉しいかぎりです。 日語のWSGIフレームワークの作り方の資料としては最もまとまっているものになっていると思うので、ぜひご活用ください。 基礎から学ぶWebアプリケーションフレームワークの作り方 WSGIの解説から始まり、ルーティング・リクエスト・レスポンス・HTMLテンプレートやミドルウェアについて順番に解説しながら、ボトムアップでフレームワークを作り上げていく話をしてきました。 半分ライブコーディングみたいな形だったので、少し不安もありました。 もう少しこうやればスムーズだったかなと反省点も少しありますが、スライドとかTogetterまとめがホッテントリ入りしていたらしく、周り

    #pyconjp でWeb(WSGI)フレームワークの作り方について話してきました - c-bata web
    lEDfm4UE
    lEDfm4UE 2016/09/25
  • 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
  • DockerでVPS上にgitlabとjenkinsサーバをたてる - c-bata web

    はじめに 研究室で借りているさくらのVPSがあって、研究で使うアプリケーション以外にgitlabとかjenkinsを動かしている。Dockerをローカルでしか動かしたことが無かったので、リスクの低いこういうところで実際にDocker使ってみる。 これまでは AnsibleGalaxyで人気のRole を探して中身も読まずにインストールしちゃっていたけど、さっき触ってたらどうインストールされてるのか混乱したのでDockerで分離できたら良さそうっていうのが2つ目の理由。 準備 環境はさくらのVPSにCentOS 6が入ってます。 https://docs.docker.com/installation/centos/ を参考にDockerをインストール。 # yum update # cat >/etc/yum.repos.d/docker.repo <<-EOF [dockerrepo]

    DockerでVPS上にgitlabとjenkinsサーバをたてる - c-bata web
  • Travis CIを使ったDjangoプロジェクトの継続的インテグレーション - c-bata web

    はじめに 以前,Djangoのテスト(ユニットテスト)の書き方について勉強したことがありました. Djangoのテストの書き方について勉強したのでまとめる - Programming Log 今回は↑の記事でも作成したDjangoプロジェクトに,Travis CIの設定を追加しました. Jenkins使おうかと思っていたのですが,Travis CIの方が手軽そうだったのでこちらにしました. ソースコードはGithubで公開しています. Travis CIについて Travis CIは言語の各バージョンを同時ビルドでき,利用者が多くドキュメントも豊富らしいです. もちろんDjangoのTutorialもありました. これを参考にすすめてみます. Travis CI: Building a Python Project アカウントの作成 travis ciのトップページからGithubでサイン

    Travis CIを使ったDjangoプロジェクトの継続的インテグレーション - c-bata web
  • 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
  • 1