Djangoのtemplate内でdebugという変数には勝手に値が入っていたりする

Djangoのtemplateを書いててハマったのでここに記す。

どうやらsettings.pyの中でDEBUG=Trueにしている場合は
RequestContext内にdebugという変数が勝手に定義されるらしい。
というかRequestContextに自分で'debug':'yes! yes!'とか定義していても
'debug':Trueに上書きされちゃう模様。

req_con = RequestContext(request, {
"debug":"uwagakareru", # -> テンプレートでTrueにされる
})

さんざんハマった。

json文字列をCrypto.Cipherで暗号化する

なんか丸見えだと困るjsonをやりとりすることになったので実装
decryptはまたこんど出来れば。

def encrypt_json(arg_json):
# pip install pycrypto でモジュールを入れてimport
from Crypto.Cipher import AES
# 第一引数は暗号鍵。16文字じゃないといけない。
aes = AES.new( 'must_be_16length', AES.MODE_ECB )
# AESは文字列長が16の倍数でないと暗号化できないため、スペースでjsonの文字数を水増しする
padding_length = 16 - (len(arg_json) % 16)
# スペースで水増しすると、json_encodeされたときにそのスペースが無視されるのがお気に入り
arg_json += (' ' * padding_length)

return aes.encrypt(arg_json)

json文字列をCrypto.Cipherで暗号化する

なんか丸見えだと困るjsonをやりとりすることになったので実装
decryptはまたこんど出来れば。

def encrypt_json(arg_json):
# pip install pycrypto でモジュールを入れてimport
from Crypto.Cipher import AES
# 第一引数は暗号鍵。16文字じゃないといけない。
aes = AES.new( 'must_be_16length', AES.MODE_ECB )
# AESは文字列長が16の倍数でないと暗号化できないため、スペースでjsonの文字数を水増しする
padding_length = 16 - (len(arg_json) % 16)
# スペースで水増しすると、json_encodeされたときにそのスペースが無視されるのがお気に入り
arg_json += (' ' * padding_length)

return aes.encrypt(arg_json)

jQueryのプラグインをつくるのを助けてくれる  jQuery Plugin Boilerplate

jQueryを使用するモジュールをつくっていて、
せっかくなのでプラグインっぽくつくろうと思ったときに
良さそうなのを見つけた。
http://stefangabos.ro/jquery/jquery-plugin-boilerplate-revisited/

テンプレになっていて、ソースコードを上書きしていけば出来る感じ。
javascriptの文法の勉強にもなるなぁと思いながらメモ。
冒頭はこんな感じ。

//remember to change every instance of "pluginName" to the name of your plugin!
(function($) {
// here we go!
$.pluginName = function(element, options) {

// plugin's default options
// this is private property and is accessible only from inside the plugin
var defaults = {

foo: 'bar',

// if your plugin is event-driven, you may provide callback capabilities
// for its events. execute these functions before or after events of your
// plugin, so that users may customize those particular events without
// changing the plugin's code
onFoo: function() {}

}

生まれて初めてシェルスクリプトを書いた

最初、
while [ $a -ne 100 ]を
while [$a -ne 100]
と書いたら動かなくて少しはまった。
大括弧の中には一つスペースがいるんですね。


#!/bin/sh
a=0
while [ $a -ne 100 ]
do
a=`expr $a + 1`
echo "${a} 回目の処理"
python ./manage.py create_data
done

Djangoのadminにログインするパスワードを忘れてしまったのでパスワードを思い出すのではなく、ユーザーを新規追加することで解決した。

Djangoのadminにログインするパスワードを忘れてしまったのでパスワードを思い出すのではなく、
ユーザーを新規追加することで解決した。

ユーザを追加する方法
python manage.py shell
>> from django.contrib.auth.models import User
>> u=User.objects.create_user('username','mailaddress@ad.co.jp','password')
>> u.save()