2013-03-01から1ヶ月間の記事一覧

FormPreviewを使って確認ページ有りの更新機能を実装する

昨日さわってみたFormPreviewですが、ぱっと見た感じだと更新機能に対応できないように見えたので、いろいろ調べてみました。以下はFormPreviewでフォームを表示する部分の関数です。 def preview_get(self, request): "Displays the form" f = self.form(au…

DjangoのFormPreviewを使って確認ページを表示する

なにかのデータを登録する機能で、登録完了する前に確認ページを表示したい、って要件はよくあります。DjangoではFormPreviewというクラスが用意されているので使ってみます。 まず登録するモデルを作成 from django.db import models from django_localflav…

JPPrefectureSelectで県名を日本語にする

LANGUAGE_CODE='ja'で、USE_I18N=Trueなのに、県名がアルファベットで表示されるのかと思って調べたのでメモ。 translationの仕組みとして、django/conf/locale以下の定義は勝手にみるけど、その他の箇所にlocaleが置いてある場合はLOCALE_PATHSってやつを定…

Djangoのformエラーのinput要素にclassを付与する

djangoで入力エラーのとき、input項目にclass="error"のようにして、デザインを変えたい場合。 フォームで動的にセットするにはどうすればいいか、調べてやってみました。 from django import forms class ContactForm(forms.Form): name = forms.CharField(…

djangoのlocalflavorアドオンがDeprecated

djangoにはlocalflavorアドオンが含まれていて、日本語圏のためには、郵便番号のフォームフィールド(JPPostalCodeField)と、県名を選択できるウィジェット(JPPrefectureSelect)が用意されてます。(知りませんでした) 考えてみると今までdjangoで住所を入力す…

jsでシーケンスダイアグラムを描画するjs-sequence-diagrams

なんか面白そうなので試してみました。 js-sequence-diagrams by bramp underscore.jsとRapha〓lに依存してるので用意します。Underscore.js Rapha〓l―JavaScript Library <div id="diagram"></div> <script src="js/vendor/underscore.js"></script> <script src="js/vendor/raphael-min.js"></script> <script src="js/vendor/sequence-diagram-min.js">

pythonでplistを読み書きする

plistって? プロパティリスト(英: property list)は、Mac OS X Cocoa・NeXTSTEP・GNUstep などで利用されるオブジェクトシリアライゼーションのためのファイルである。また、 .plist という拡張子をもつので、plistファイルと呼ばれることが多い。 プロパ…

DjangoでDigest認証をかける

django-digestというパッケージを使うとdjangoでdigest認証をかけることができます。 python-digestに依存してるので一緒にinstallします。 pip install django-digest python-digest akoha / django-digest / wiki / Home ― Bitbucket dimagi/python-digest…

Djangoでbasic認証をかける

djangosnippetsにmiddlewareのサンプルがあります Django snippets: Basic Auth Middleware ついでにBasic認証の仕組みをメモしておこうと思います。 Basic認証の流れ 1. クライアントが認証が必要なページをリクエスト2. サーバーはユーザー名とパスワード…

pythonでredisをさわる練習 4

今日はハッシュ # coding=utf-8 import redis r = redis.StrictRedis(host='localhost', port=6379, db=0) r.delete('user1') # hset: ハッシュのキーに値をセットする r.hset('user1', 'name', 'taro') # hget: ハッシュのキーに紐付いている値を取得する u…

pythonでredisをさわる練習 3

昨日に続いて、pythonでredisのセットを操作してみた。 リストよりわかりやすい。 # coding=utf-8 import redis r = redis.StrictRedis(host='localhost', port=6379, db=0) r.delete('alphabet') r.delete('digit') r.delete('character') # sadd: キーに対…

pythonでredisをさわる練習 2

今日はリストの操作をいろいろやってみた。 brpop、blpush、brpoplpushあたりは最初わかりにくかったけど、やってみればどんな動きはわかる。 # coding=utf-8 import redis r = redis.StrictRedis(host='localhost', port=6379, db=0) r.delete('beatles') r…

pythonでredisをさわる練習

文字列の扱いと数値の扱いを適当にさわってみてたのでメモを残しとく # coding=utf-8 import redis import time r = redis.StrictRedis(host='localhost', port=6379, db=0) # 文字列をセット r.set('name_1', 'brainstorm') # 数値をセット r.set('rank_1',…

npmでインストールしたライブラリを使おうとしたらエラーになった

js

昨日Fakerってライブラリをちょっとだけさわってみたんですが、npm installして最初に使おうとしたら以下のエラーになりました。 > var Faker = require('./Faker'); Error: Cannot find module './Faker' at Function.Module._resolveFilename (module.js:3…

ダミーデータを作成してくれるFaker.jsを試してみる

js

Marak/Faker.js · GitHub インストール npm install Faker 使い方 var Faker = require('./Faker'); var randomCard = Faker.Helpers.createCard(); createCardで個人の情報をいろいろまとめて作成してくれます。Northern Irelandにお住まいのElwin Mooreさ…

skypeで会話履歴を検索する

過去の会話を検索したいとき、一応チャットの上部にこんなリンクがあって、全部表示してCTR+ + Fで検索することができますが 長く使っているグループチャットだと表示するのに時間がかかりますし、ヘタしたら固まります。 調べてみたらチャットで/searchと発…

縦書きでつぶやくツール

すでに今更感ありますが、作ってみたのでherokuにあげた 縦書変換

Django 1.5のカスタムユーザーモデルとdjango-registration その3

以下の続きDjango 1.5のカスタムユーザーモデルとdjango-registration - brainstorm Django 1.5のカスタムユーザーモデルとdjango-registration その2 - brainstorm Django 1.5のカスタムユーザーモデルを使っていて、fork版のdjango-registrationでユーザー…

Django 1.5のカスタムユーザーモデルとdjango-registration その2

django 1.5でプロジェクト作って、カスタムユーザーモデルを定義してみる。 apps.models.py from django.contrib.auth.models import AbstractBaseUser from django.db import models from django.utils.translation import ugettext_lazy as _ class MyUser…

Django 1.5のカスタムユーザーモデルとdjango-registration

django 1.5ではUserモデル周りでいくつかの変更がありました。 こちらがわかりやすいです。カスタムユーザーモデルですね。 Django 1.5 の紹介 - Ian Lewis ところでdjangoでユーザー登録というとdjango-registrationがわりと使われているんじゃないかと思い…

Djangoでjsonp

なんかパッケージがあるのかなと思ったけど見当たらず。このくらいは自前で実装するのが普通なのかな?と思ったらdjango-decoratorsというのがgithubに上がってて、いい感じにつかえるデコレータが定義されていた。 julian-amaya/django-decorators · GitHub…

Djangoのセッション管理について 2

昨日みたとおり、djangoのセッション管理はcookieを利用して行われます。 cookieを使えない状況には対応してません。 Django のセッションフレームワークは完全なクッキーベースであり、クッキー以外 の情報を扱いません。従って、 PHP のように URL にセッ…

Djangoのセッション管理について

普段django使ってアプリ開発とかしてるわけですが、実は中身がどうなってるのかあまり知らずに使ってます。 今日はなんとなくセッション管理について調べてみました。 セッションを使うには? セッションを有効にする方法 MIDDLEWARE_CLASSESに、 'django.co…

攻撃元のIPアドレスを遮断するFail2ban

ログファイルを監視してくれて、攻撃を探知したら、iptablesのルールを書き換えてアクセスを遮断してくれるようです。 Fail2banこちらのエントリで知りました。My First 5 Minutes On A Server; Or, Essential Security for Linux Servers | Bryan Kennedy …

Bootstrapを使ったカッコいいデザインのサイトを集めたBootstrap Expo

Bootstrap Expo Bootstrap使ってこんなカッコいいサイトができるんですねぇ (私のような)デザインができない人間が、とりあえず見れるサイトを作るためのcssフレームワークって認識でしたが、自分がしょぼいだけでした。

Pythonでxmlrpc その3

昨日の続き。ServerProxyに verbose=Trueを渡せば通信内容がわかるのでデバッグ用途に使える # coding=utf-8 import xmlrpclib import datetime proxy = xmlrpclib.ServerProxy("http://localhost:8000/", verbose=True) today = proxy.today() send: "POST …

Pythonでxmlrpc その2

昨日の続き。 ServerProxyにuse_datetime=Trueを渡せばdatetime.datetimeで日付を返してくれるようだ # coding=utf-8 import xmlrpclib import datetime proxy = xmlrpclib.ServerProxy("http://localhost:8000/", use_datetime=True) today = proxy.today()…

Pythonでxmlrpc

とても簡単 サーバー側。日付を返すだけの例。 import datetime from SimpleXMLRPCServer import SimpleXMLRPCServer import xmlrpclib def today(): today = datetime.datetime.today() return xmlrpclib.DateTime(today) server = SimpleXMLRPCServer(("lo…

man ascii

小ネタman ascii で アスキーコード表が確認できるいつか役に立つかもしれん それにしても花粉がつらいです

x509証明書

昨日作成してみた自己署名証明書をpythonで扱ってみる PyOpenSSLを使うとりあえず、load_certificateで読み込んで中身を確認 # coding=utf-8 from OpenSSL.crypto import load_certificate, FILETYPE_PEM with open('cacert.pem') as f: x509 = load_certifi…