dackdive's blog

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

Python

Pipenvで仮想環境をプロジェクトディレクトリの下に作る(PIPENV_VENV_IN_PROJECT)

ちょいメモ。 久しぶりに Python を書くにあたって環境構築する際、 2018年のPythonプロジェクトのはじめかた - Qiita を見て Pipenv を使ってみた。 普通に pipenv shell で仮想環境を作成すると ~/workspace/Python/pipenv-sandbox $ pipenv shell Creatin…

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…

PythonでHerokuローカル開発してる時にファイル更新を検知して自動的にリロードする

ちょっとしたことだけど、メモ。 $ heroku local web でローカルにサーバーを立ち上げて開発をしている時、 ファイルが更新されたら自動的に起動しているサーバーにも反映されてほしい。 Heroku のコマンドのオプションでやるのかと思ってたが、gunicorn の…

『実践 Python 3』で学ぶデザインパターン : Builderパターン

こちらの書籍でデザインパターンを勉強中。 実践 Python 3作者:Mark SummerfieldオライリージャパンAmazon また、Java ですが家にこの本もあったので並行して読み進めていきます。 増補改訂版Java言語で学ぶデザインパターン入門作者:結城 浩ソフトバンクク…

『実践 Python 3』で学ぶデザインパターン : Abstract Factoryパターン

こちらの書籍でデザインパターンの勉強を始めました。 実践 Python 3作者:Mark SummerfieldオライリージャパンAmazon また、Java ですが家にこの本もあったので並行して読み進めていきます。 増補改訂版Java言語で学ぶデザインパターン入門作者:結城 浩ソフ…

[Python]pep8とpylintの設定ファイルを作成して一部の警告を非表示にする

pep8 や pylint はインストールしたままの状態だと必要以上に警告が表示されてうっとおしいので、 無視したい警告などを設定ファイルに記載します。その方法をメモ。 ※pylint については以前 Syntastic の設定方法の時にも触れました [vim]Syntasticでpython…

PythonのSalesforceライブラリまとめ

nforce の Python 版みたいなのが欲しくてそれらしいライブラリがないか調べていたところ、こちらの記事が大変参考になったので、プラスアルファで自分で調べたものも整理しておきます。 http://freedom-man.com/blog/python-salesforce/ 参考にしたサイト P…

PythonでCGIを動かす(Python2, Python3)

import cgi とかしてるファイルをローカルでどうやって動かすのか色々調べたメモ。 最初、Apache で動かす必要があるのかと思い、 Running Python Programs on the macOS / Mac OS X Apache Web Server Mac OSX Mavericks で Apache環境構築 + 任意のディレ…

[Python]Pelicanで作ったサイトにfaviconを設定する

またまた Python製 静的サイトジェネレータ Pelican の話。 ここに書いてあった。 Tips n Tricks · getpelican/pelican Wiki · GitHub 2 通りあるみたいだけど Second Solution でうまくいった。 設定方法 1.content ディレクトリの下に extra というディレ…

[Python]PelicanにMarkdown Extensionsを入れて自分好みにカスタマイズする

Python製 静的サイトジェネレータ Pelican の話。 記事は Markdown で書いているのだが、Markdown から生成される HTML の細かい挙動を変えたい、あるいは機能を追加したい場合にどうやってカスタマイズするのか調べてみた。 公式ドキュメントのここに書いて…

[Python]Travis CIでPelicanのビルドを自動化する

Qiita にも投稿した けどこちらにも。 Pelican + GitHub Pages で運用しているサイトがあるのだが master に記事を push したら自動的に pelican コマンドで HTML を生成し、gh-pages ブランチに push してサイトが更新されるように Travis CI を設定してみ…

[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]PelicanでGitHub Pagesにブログを構築したらスタイルが当たらなかったときの対処法

この記事の補足です。 dackdive.hateblo.jp 勉強会の時に作ったサイトに後でアクセスしてみたら、スタイルが全然当たってなかった。。。 http://zaki-yama.github.io/salesforce-developers-info/ で、開発者コンソールで書いてる通り CSS ファイルが 404 に…

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

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

[Python]PelicanでGitHub Pages上にブログを構築する(Django Girls for Everyone #2 参加メモ)

こちらのイベントの参加メモです。 少人数でわいわいやる感じで面白かった。 作業に没頭してしまったんだけどもっといろんな人とお話すればよかったー。 今回は、Pelican という静的サイトジェネレータを使い GitHub Pages 上に自分のブログサイトを構築する…

[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…

[Python]pyenvとvirtualenvとpyenv-virtualenv

pyenv とか virtualenv を使いだしてだいぶ経つけど、メモ。 web 上の記事で、virtualenv と呼んでいるものが実は pyenv-virtualenv のことだった、というのがたびたびあって しばらく自分も勘違いしてました。 結局、最初に pyenv とか virtualenv の使い方…

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) ので、 なるべく英語版の、自分が使…

[python 2系]with構文 (__enter__と__exit__)

__enter__ と __exit__ という見慣れないメソッドに触れる機会があったので、メモ。 python のバージョンは 2.7。

[python 2系]ディスクリプタ(__get__, __set__, __delete__)

タイトルの通り、__get__ とか __set__ メソッドを実装したクラスの機能について。 python のバージョンは 2.7。 ディスクリプタと呼ぶらしい。こんな公式ドキュメントがある。 http://docs.python.jp/2/howto/descriptor.html また、理解する上でこちらが大…

[python]メタプログラミングの基礎(__init__, __new__, __metaclass__)

python の __init__, __new__, __metaclass__ や、それらを使ったメタクラスの作成方法などについて。 「メタプログラミング」という言葉はたぶんこれ以外の機能についても言えるんだけど、参考にしたサイトが大体メタプログラミングという言葉を使っていた…

Herokuのpythonチュートリアル(Getting Started with Python on Heroku)をやってみた

ここ。 Getting Started on Heroku with Python | Heroku Dev Center Heroku は Ruby や Rails を使ったことがなかったので今まで敬遠してたんだけど python のチュートリアルがあったのでやってみた。 つまずいたポイントとか覚えておきたいことなど、軽く…

[python]pytestで出力するログのレベルを設定する(pytest-capturelog)

pytest でテストを実行する際、pytest-capturelog というパッケージを入れるとログを出力することができます。 (ただし出力されるのはテストが失敗した時のみ) このとき、debug レベル以下のログは表示したくない、といった具合に 出力するログのレベルを…

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

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

[Google App Engine]AppStatsのタイムゾーンを変更する

Request History に表示されている時刻のこと。 そもそもどのタイムゾーンで表示しているの?とかどうやって変更するの?とか気になったので調べてみたら、公式ドキュメントに記載があった。 Appstats for Python 2 | App Engine standard environment for P…

[Google App Engine]静的ファイルをpythonで読み込む時の注意点

ちょっとつまづいた。 こんな感じで、python からファイルの読み込みを行いたい時がある。 # ---------------- views.py の一部 ---------------- from models import PostCard class MainView(View): template_name = 'app/index.html' def get(self, reque…

[Google App Engine] app.yamlについて

ここを読んでみた。 https://cloud.google.com/appengine/docs/python/config/appconfig とりあえず前半部分、handlers のところまで。 Required elements app.yaml には以下の項目を1つずつ記載する必要がある。 application アプリケーション名(任意) ve…