dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

Django

Django: python-social-authでTwitter認証を実装する

Django アプリケーションにソーシャルログイン機能を実装して、Heroku アプリケーションとして動かしてみる。 例として Twitter によるログインを試してみるが、Python Social Auth は他にも Google や Facebook などの主要な Web サービスでの認証をサポー…

[Python] HerokuからForce.com REST APIを叩く

というサンプルを作りました。 元々、Heroku から Force.com REST API を叩くサンプルは海外の方が Node.js と Java で作ったものがありまして、それをお手本に Python 版を書いてみたという経緯です。 (Node.js) Salesforce REST APIs – From Zero to Cloud…

[Django]URLconfのユニットテストの書き方

メモ。 Django の urls.py で urlpattern に正規表現とか使っていると、正しく書けているかどうか確認したいことがある。 たとえば myproject というプロジェクトに myapp というアプリケーションを作成した場合、 myproject および myapp の urls.py は以下…

Djangoのチュートリアルが終わった後に読みたいもの

自分用メモ。 チュートリアルやった。 https://docs.djangoproject.com/en/1.9/intro/ コード https://github.com/zaki-yama/django1.9-tutorial チュートリアルの中でいくつか Further Reading 的なドキュメント(いずれも公式ドキュメント)が紹介されてた…

[Python]HerokuでDjangoアプリケーション開発を始めるためのテンプレート

この記事は Heroku Advent Calendar 2015 22 日の記事です。 はじめに Heroku と言えば Ruby!な印象がどうしても強いですが、Ruby 以外にも様々な言語をサポートしています。 Python もそのひとつです。 ref. Language Support | Heroku Dev Center Python(…

[Heroku][Django]Postgres.appで `'django_postgrespool' isn't an available database backend.` エラー

メモ。 Django アプリケーションをローカルで実行したらこんなエラーが出た。 (確認した PC は Mac OS X Yosemite v10.10.5) (venv)$ heroku local web forego | starting web.1 on port 5000 web.1 | [2015-12-13 12:57:53 +0900] [2925] [INFO] Starting…

Heroku+DjangoでPostgresをローカルで使う時につまづいた点

メモ。 以前、Heroku の Getting Started with Python on Heroku チュートリアルをやった時に 一応、最後まで進めることはできたんだけど、heroku local でローカルでアプリを立ち上げた時 /db にアクセスするとエラーになってしまい、そこだけうまくいって…

[django]フォームのバリデーションまとめ(to_python, clean, validate)

django の Form とバリデーションについてまとめてみた。 https://docs.djangoproject.com/en/1.5/ref/forms/validation/ 今回使用した django のバージョンは 1.5。 日本語のページ もありますが情報が古い(最新で v1.4) ので、 なるべく英語版の、自分が使…

[django]Django REST Frameworkを使わずにDjangoでREST APIを作る

Django の Class-based View で、あるリソースを JSON 形式で返すような REST API っぽいものを作ろうと思ったんですが 「Django REST API」とかでググると Django REST Framework というフレームワークの話ばかり。 Google App Engine で開発しているので D…

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (4)

前回 書いたコード、しばらく経ってからアクセスすると AccessTokenRefreshError なるエラーが発生することがわかった。 ERROR 2015-03-13 15:12:12,692 base.py:210] Internal Server Error: /task_manager/ Traceback (most recent call last): File "/App…

[GAE][django]djangoのクラスベース汎用ビュー用の@login_required

ユーザーがログインしていなかった時にログイン画面にリダイレクトしてくれる @login_required デコレータ。 SDK に標準で備わっているものは Django に適用できなかったので作った。 コード util.py は参考までにオリジナルの appengine/ext/webapp/util.py…

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う 記事一覧

長くなりそうなので、過去記事一覧をここにまとめ。

[GAE][django]django+pytest でImproperlyConfiguredエラー

GAE(python) + django で、フォームのテストをしていた時に発生した。 (テストには pytest を使っている) ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_…

[GAE][django] GAE+djangoで開発を始めるための自分流Scaffoldを作った

新しく Google App Engine のアプリを作ろうと思った時に 既存のアプリを一旦コピーして、必要なもの以外は削除して...という作業が面倒なので Scaffold (と呼んでいい?)的な初期ファイル群を作ってみた。 特徴 README にも書きましたが パッケージ管理に…

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (3)

前回の記事はこちら。 views.py を変更し、とりあえず Task 一覧を表示できるようになった。

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (2)

前回 から引き続き。 とりあえず認証のリダイレクトが機能しつつ、 Credentials を NDB に保存できるところまで。

[GAE][django]Google APIs Client Library for Pythonをdjangoで使う (1)

タイトルの通り。 Google App Engine で Tasks API を利用した簡単なアプリを作ろうとしたがOAuth2 の認証でハマってしまい、 現在も解決していないが調査記録をメモ。 最終的に解決したら別の記事として整理したい。

[django]templatesディレクトリを配置する場所(ベストプラクティスを考えてみた)

djangoでテンプレートファイルを管理する時、置き場所の候補はたぶん2つ考えられます。(*1) project ディレクトリの直下にtemplatesディレクトリを作り、その下に application ごとのサブディレクトリを作る 各 application ディレクトリの直下にtemplatesデ…

[django]URLconfで指定した数値(integer)が文字列(unicode)になる

Google App Engine + Djangoという組み合わせでのほんとにちょっとした話。 Djangoのバージョンは1.5 です。

[GAE][django]テンプレートでエンティティのIDを取得する

ちょいメモ。 最初、テンプレートに{{ entity.id }}とかやってたんだけど よく考えるとGAEのエンティティのIDはKeyクラスから取得するんですよね。 NDB Key Class | App Engine standard environment for Python 2 | Google Cloud つまり、pythonのコード中…

[django]クラスベースビュー(Class-based views)のCSRF対策を無効にする

DjangoのミドルウェアにCSRFミドルウェア(django.middleware.csrf.CsrfViewMiddleware)を指定していると、 csrf_tokenを渡していないPOSTメソッドは403エラーになってしまいます。 ただし、外部からのアクセスを可能にしたい場合など、特定のViewのメソッド…

[django]アプリケーション名を取得する

テンプレートなどにアプリケーション名を直書きしたくないので 取得する方法がないか調べてみた話。

Google App Engine Python Tutorialのメモ(4)

第4回はChapter 7 Using Templatesです。 (追記)その他のメモ Google App Engine Python Tutorialのメモ(1) - dackdive's blog Google App Engine Python Tutorialのメモ(2) - dackdive's blog Google App Engine Python Tutorialのメモ(3) - dackdive's b…

[python]urlencodeでUnicodeEncodeError: 'ascii' codec can't encode...が出た時の対処

# -*- coding: utf-8 -*- import urllib params = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' } print urllib.urlencode(params) を実行すると key3=value3&key2=value2&key1=value1 のようにurlパラメータの形式に変換してくれて便利なurlenc…