django
django-tastypieのSessionAuthenticationはDjangoのデフォルトのセッション機能を使ってログインしているかどうかをチェックします。 具体的にはcookieにsessionidが設定されていること(ログインしている)と、あとはcsrftokenが必要なようです。試してみまし…
依存ライブラリをインストールします pip install python-provider pip install oauth2 Resourceクラスでauthentication = OAuthAuthentication()を記述します from tastypie.authentication import OAuthAuthentication from tastypie.resources import Mod…
djang-tastypieでDigest認証をかける方法を試してみました。 前に試したApiKey認証と同じくApiKeyのレコードが必要ですので、下記のエントリの通り準備します。 django-tastypieでApiKey認証をかける http://d.hatena.ne.jp/yuheiomori0718/20120921 さらにp…
先日django-tastypieのApiKeyAuthenticatinを試してみました。 認証パラメータ(username/api_key)はGETかPOSTで渡すしかないので、登録や更新などの場合は(POSTパラメータのjsonにつっこんでも見てくれないので)、クエリパラメータで渡してたんですが、POST…
先日django-tastypieで作ったAPIにBasic認証をかける方法を試してみました。 今日は自動的に生成されるApiKeyを使うApiKey認証というのを試してみたいと思います。 Basic認証ではユーザーのパスワードが必要ですが、それが好ましくない場合はこっちを使うみ…
django-tastypieを使えば、Djangoでモデル定義されたデータへアクセスするAPIを簡単に作成することができます。先日サンプルを作成してみましたが、認証がかかっていないため、APIは誰でも叩けてしまいます。これはよくないですねどこのだれだかわからない人…
django-tastypieを使えば、Djangoでモデル定義されたデータへアクセスするAPIを簡単に作成することができます。できるみたい。 どのくらい簡単か試してみました。 インストール pip install django-tastypie0.9.11が入りました。 サンプル とりあえずモデルm…
やりたいこと あるモデルのレコードが削除されたとき、なんからの処理を行いたい やりかた Djangoの場合はsignalという仕組みが用意されています 例えばこのようにモデルとsignalsの設定をします from django.db import models from django.db.models.signal…
postgresにはdistinct on という構文があるそうです。知らなかったです。 djangoのドキュメントで知りました。 postgres distinct on でググるとこちらのエントリが一番上にきます。 PostgreSQL の DISTINCT ON http://www.odin.hyork.net/write/write0228.h…
環境はMacOSX 10.7.4 Djangoは普段から使ってるけど、いつもsqlite3かmysqlなので、postgresを使うまでの環境設定のメモ 1. Postgresをhomebrewでインストールなんかdependencyでいろいろ入った $ PYTHON=/usr/local/bin/python brew install postgresql ==>…
こちらのエントリを見てdjango-generate-saffoldが面白そうだったのでさわってみました 「Python の Web フレームワーク Django って凄い」ってアピールのに "django-generate-scaffold" を使って3分でブログを作るとよいかもな件 http://d.hatena.ne.jp/Cor…
django-celeryでリトライをさせるにはどうするのか知りたくて、ドキュメント読みながら動かしてみたのでメモ以下のようにtaskデコレータをつけた関数内で、関数名.retryを呼ぶことで処理が再実行されます。 from celery import task from celery.utils.log i…
django-celeryのインストール ほんとはpycharmの設定ダイアログから入れたんだけど、pipでも同じでしょう pip install django-celery 設定 1. Django Projectを作るPycharmのMenu->New Projectで ApplicationNameも聞かれるので、startappも同時にできます 2…
以前django-pjaxを触ってみたエントリを書いたんですが Djangoでpjaxするdjango-pjaxを試してみた http://d.hatena.ne.jp/yuheiomori0718/20120831/1346420984 そのとき、こんなviewを書いてました from django.template.response import TemplateResponse f…
Djangoでクエリの実行結果として、特定のカラムのみ取得するにはvaluesが使えます例えばこんなモデルがあるとして class Book(models.Model): title = models.CharField(max_length=100) published = models.DateField() titleだけ取得する場合は以下のよう…
Djangoでクエリの実行結果として、特定のカラムのみ取得するにはvaluesが使えます例えばこんなモデルがあるとして class Book(models.Model): title = models.CharField(max_length=100) published = models.DateField() titleだけ取得する場合は以下のよう…
数日前、こんなツィートを見かけまして、そのとき思いついたサイトを作ってみました。 まとめてなう http://bulknow.herokuapp.com/ twitterアカウントでログインすると、左側にtweet投稿のフォームが複数あって、右側に入力をつなげたものと全文字数が表示…
djangoでpjaxをするのにdjango-pjaxというライブラリがあるので試してみました。 django-pjax https://github.com/jacobian/django-pjax jquery-pjax https://github.com/defunkt/jquery-pjax インストール pip install django-pjax jquery-pjaxはダウンロー…
昔railsアプリでtwitterログインさせるのにomniauthというライブラリをつかってたことがありまして、Djangoではどんなライブラリがあるのかなーと思って探してみたところ、django-social-authというのがよさそうだったので試してみました。 omniauth https:/…
実に小ネタですが、help_textに指定する文言が長くて改行させたい場合、brタグを含めりゃよさそうですが、デフォルトでエスケープされて、そのまま<br>と表示されてしまいます。 class ContactForm(forms.Form): subject = forms.CharField(max_length=100, help…
昨日作成した「Decision Table Creator」ですが、テストケースの作成方法が条件の全組み合わせしかできなかったので、ちょっと条件が多くなると、テストケースが爆発してしまうという問題がありました。 ですので、テストケースの作成方法として、「全組み合…
先日DjangoのFormsetを使ったサンプルを作ってみましたが、もう少し実用的なものを作ってみようと思い、デジションテーブルをエクセルファイルでダウンロードできるサイトを作ってみました。 Decision Table Creator http://decisiontable.herokuapp.com/ デ…
どうやるのかなと思って調べたときのメモ 例えば複数のブックマークを一括で入力できる画面を想定して、こんなFormとFormSetがある場合 from django.forms.formsets import formset_factory from django import forms class BookmarkForm(forms.Form): title…
複数の同じフォームの表示をしたい場合、Djangoではformsetが用意されてます。 https://docs.djangoproject.com/en/1.4/topics/forms/formsets/普通に使うと、複数のフォームが同時に表示されます。 「最初はフォームをひとつだけ表示し、必要に応じて増減さ…
設定はHttpResponseのset_cookieを使う import datetime from django.http import HttpResponse def index(request): # 何らかの処理 response = HttpResponse(render_to_string('index.html')) set_cookie(response, 'key', 'value', 365*24*60*60) return …
ロンドン五輪が始まったので、便乗して何かロンドンに関係あるサイトを作って見ようと思いました。だけど、大したものが思いつかなかったので、Instagram APIを使って londonというタグがついている画像を表示するという、何番煎じかわからないようなサイト…
MySQLの場合はmediumtextにしたい。他にsqlite3を使うことが考えられるが、その場合はtextでいい。こんな感じ? class MediumTextField(models.TextField): def db_type(self, connection): if connection.settings_dict['ENGINE'] == 'django.db.backends.m…
先日、gmailを使ってdjangoからemailを送信する設定なんかを調べました。 今日は関連して「view関数などでemail送信している場合、ユニットテストを実行するたびに送信されてしまうのか?」と思ったので調べてみました。 結論を先に書きますと、python manag…
DjangoではGmailを利用して簡単にメールを送信することができます。以下の手順ですぐに試せます。1. djangoアプリ作成 > django-admin.py startproject django_gmail 2. settings.pyに設定を追加使用するgmailのアカウントとそのパスワードが必要ですsetting…
POSTで画像アップロードがあるフォームのテストを書く方法を調べる機会があったのでメモしておく from django.test import TestCase class UploadTest(TestCase): def test_upload(self): with open('test.jpg') as f: res = self.client.post('images/uploa…