近所で勉強会をやっていました。 cokonpile.connpass.com コロナ禍でオフラインの発表形式の勉強会をしばらくやっていなかったので、やっていきたいね、という趣旨。 Pythonの標準デバッガーであるpdbを紹介しました。
@c_bata_ さんの著書、『実践Django Pythonによる本格Webアプリケーション開発』をいただいたので紹介します。 実践Django Pythonによる本格Webアプリケーション開発 (Programmer’s SELECTION) 作者:芝田 将翔泳社Amazon 本書の内容 Djangoの基本機能、モデルとクエリ操作、ビュー、テンプレート、フォーム、テスト、認証と認可、Django Rest FrameworkによるAPI開発を実際に動作するコードとともに説明をしています。 特に以下の点はおもしろいと思いました。 テストコードを多く記述している テストコードを始めに書いて、テストをFailにしたあとで、テストコードがSuccessになるよう実装を進めている セキュリティの説明で、実際に問題発生するコードを説明してから、解決方法の説明をしている XSSやCSRF、SQLイン
Djangoフレームワークのセッションの有効期限について調べる必要があったのでまとめておく。 試したバージョンは、Python 3.9、Django 3.2.4。 ドキュメント Djangoのセッションについてのドキュメント https://docs.djangoproject.com/ja/3.2/topics/http/sessions/ Djangoのsettings.pyの設定項目(セッションの部分) https://docs.djangoproject.com/ja/3.2/ref/settings/#sessions セッションのデフォルト設定 Djangoでプロジェクト生成した際のデフォルトの settings.py では、セッションのアプリケーションは有効になっている。 settings.py INSTALLED_APPS = [ 'django.contrib.admin
去年から手伝っていて、今年の4月には公開されていたのですが、Pythonの入門者向けの動画の教材を作っていました。 JMOOCというオンライン講座の1つとして公開されています。 www.fisdom.org 講座はFisdomというプラットフォームで配信されているため、利用には登録が必要ですが、受講料はかかりません。 CMSコミュニケーションズの寺田さんと2人で半分ずつ分担してやってました。 Pythonを学習するための手助けになればいいなと思います。 2020/4/24追記 2020年度分についてはこちらです。 Pythonの入門者向け動画教材2020年4月開講分 - 偏った言語信者の垂れ流し
Djangoフレームワークでは、データベースルータークラスを作成して、 settings.DATABASE_ROUTERS に設定することで、モデル毎に使用するデータベースを変えたりできます。 データベースルーターにはいくつかのメソッドを実装しますが、その中の一つ、 allow_migrate を実装した際のマイグレーション処理の挙動について気になったので調べました。 試した環境は、Python3.7.1、Django 2.1.3。 前提 Djangoのプロジェクト名: project1 アプリケーション名: myapp 対象のモデルは以下の通り: myapp/models.py: from django.db import models class Spam(models.Model): name = models.CharField(max_length=20) この Spam モデル
AWS IoT エンタープライズボタンは、AmazonのDashボタンの汎用のやつ。 IoTボタン www.amazon.co.jp ボタンを押した際にEメール送信、SMS送信、Lambda関数の実行などを設定できる。 ボタンの動作にはWifiネットワークが必須となっている。初期セットアップはスマートフォンのアプリから実行すると簡単でした。 デバイスの管理画面 管理画面は結構シンプル。バッテリー残量もわかるので便利。 IoT 1-Clickの管理画面 開発の流れ デバイスを登録 Lambda関数を用意しておく AWS IoT 1-Clickプロジェクトを作成 実行したいテンプレートを選択(Lambda関数の実行など) プレイスメントを選択(プレイスメントに対し、デバイスを登録する) サンプルコードを用意して試す Lambda関数でSlackに投稿してみるサンプルコードを作成し、試してました
DjangoCongress JP 2018にスタッフとして参加しました。 djangocongress.jp Djangoフレームワークのみをテーマとした100人以上の規模のイベントは、日本では初めてだったように思います。 半年前から準備してきたイベントですが、無事終了できてよかったです。 会場 サイボウズ株式会社さまが無償で提供してくれました。かなり余裕のある広いスペースで、Wifiも快適でしたので、良かったと思います。ありがとうございました。 サイボウズではエンジニアとつながるイベントを開催しているそうです。 cybozu.connpass.com 開催の準備について 月1回程度、集まって作業、それ以外は各自進められることを進めた やることを極力減らせたので、開催直前の準備も持っていく荷物をチェックする程度ですぐに終わった CfPへの応募が予想以上に多く、選定はすごく悩んだ Djan
PyQというプログラミング学習サービスの紹介と宣伝です。 ↓ これ ↓ 以前、私が勤務していた株式会社ビープラウドが開発しています。 ビープラウドは、Python言語が得意でシステム開発をやってる会社です。connpassというイベントサイトの開発、運営もやってますね。 2019/7/31追記 返金に関して月の途中解約による返金は廃止されたそうです。 料金、定期購読に関する詳しい説明 — Pythonオンライン学習サービス PyQドキュメント 2017/10/2追記 PyQに機械学習、データ分析のコンテンツが追加されました。コンテンツの不足部分が補われたという感じで、より充実したものになっています。 機械学習のコンテンツは、サイボウズ・ラボの西尾さんが監修。Webで検索すれば西尾さんの勉強会等での資料等が見つかりますが、わかりやすい内容だと思いました。 PyQの機械学習コンテンツもやってみ
FunkLoadはPythonで作られたWebアプリケーション向けの負荷試験ツールです。 レポートがわかりやすいので、負荷試験の際によく利用してます。 便利ではあるのですが、いくつか使いづらい点があったので、funkload-friendlyというラッパーモジュールを作りました。 GitHub - tokibito/funkload-friendly: Friendly wrapper of FunkLoad. Python 2.7のみ対応です(FunkLoadがPython3に未対応) FunkLoadとの違い 大雑把ですが以下、funkload-friendlyで便利にしたところです。 リクエスト間でCookieが保持される(セッションやCSRF対策されたフォームの扱いなどが簡単) REST API(JSON)の扱いが簡単 結果ファイルの出力先にディレクトリを指定できる なるべくFun
仕事でzope.interfaceを使う機会があるので勉強。 @aodag に教えてもらったりしてる。 zope.interfaceはいろいろ機能があるみたいなのだけど、とりあえずregistryを使ってみる。 zi_registry.py # coding: utf-8 import sys from zope.interface import Interface from zope.interface.registry import Components class ICalculator(Interface): pass class AddCalculator(object): def calculate(self, val1, val2): return val1 + val2 class SubCalculator(object): def calculate(self, val
Djangoではurls.pyなどで、名前付きのURL(url関数を使ってnameを指定)することで、URLを名前から逆引きすることができますが、この名前が衝突するとどうなるでしょう。 答え:一番最後に定義されたものが使われます。 以下、その例。 プロジェクトの構造 myproject │ manage.py │ myproject.db │ settings.py │ urls.py │ __init__.py │ ├─myapp1 │ models.py │ urls.py │ views.py │ __init__.py │ ├─myapp2 │ models.py │ urls.py │ views.py │ __init__.py │ └─templates ├─myapp1 │ index.html │ └─myapp2 index.htmlmyapp1とmyapp2を作りまし
hfunaiの記事に便乗。 http://blog.monospace.jp/2010/10/31/django_piston_intro/ django-pistonを使うとDjangoで簡単にWebAPIを作れます。 jespern / django-piston / wiki / Home — Bitbucket fields/excludeにフィールド名を指定すると、必要なフィールドのみを出力したりできます。 ただ、APIで提供するデータの構造とモデルの構造が一対一の対応にならない場合、辞書を頑張って生成するか、ハンドラのフックポイントを実装するか、Emitterクラスをゴリゴリ書くなど、ちょっと面倒です。 そういう場合に、bpmappersと組み合わせるといいかも、という話です。 今回はGETでデータを取得(参照)する場合のみを想定してます。保存する場合はFormで頑張ろう・・・
今更な感じではあるけど紹介。 ソフトウェアを多言語対応させるためにはgettextなどの仕組みを使うのだけど、それらで使われる拡張子がPOの翻訳データのファイルをオンライン上で編集できるサービスです。 https://www.transifex.net/start/ Transifexがオープンしたのは1年以上前なんですが、しばらく触ってなくて久しぶりに見てみたら、UIなどが結構わかりやすくなってました。 Transifexでできること このサービスでできることはこんな感じ。 各種翻訳データファイルの翻訳 翻訳データファイルの内容を翻訳できます。 フォーマットはgettextであればPOファイルですが、それ以外でも多数サポートされています。詳細はドキュメントに書かれています。 Supported File Formats Webでの翻訳の画面はこんな感じ。左が原文で右側に翻訳したテキストを
勉強会などの感想を書くのは久しぶりかもしれない。 最近ブログに書けないネタが多いので書けそうなことは書く。 8/27のPyConJP 2011に参加してきました。 PyCon JP 2011 今回は講演者とかではなく一般参加者。 見てきたセッション Webフォームウィジェットツールキットを総括する http://2011.pycon.jp/program/talks#web aodagさんの話。キャー!ダグさまー。 WTFormsは使ったことあるのだけど、まあ機能少なくて貧弱は同意。 ただ、小さいのでちょっとしたものに使うのはこれぐらいでもいいかなって思ってる。 deform/colanderがなかなか興味深い。万能型。 Pythonで働くということ http://2011.pycon.jp/program/talks#panel-discussion-python shachoたちの
モデルから辞書への変換を支援するPythonモジュールを公開しました。 bpmappers 0.8.2 : Python Package Index tokibito / python-bpmappers — Bitbucket ビープラウドで使っているものです。 JSONのAPIを作るときなどに、ツリー構造の辞書オブジェクトから変換したりしますが、その辞書の生成などで役に立ちます。 サンプルコードを以下に。 test.py from bpmappers import Mapper, RawField, ListDelegateField class Person(object): def __init__(self, name, age): self.name = name self.age = age def __repr__(self): return '<Person name:%
はまったのでメモ。soundkitchenさんありがとうございます。 モデルでDateTimeFieldなどのフィールドを使用するときに、 mydate = models.DateTimeField(default=datetime.datetime.now()) のようにデフォルト値に"datetime.datetime.now()"を指定することがよくある。 しかし、これだと管理画面で新規作成をした場合には、常に同じ日付が表示されてしまう。 defaultの値を毎回評価するためには、関数を指定する。 つまり、 mydate = models.DateTimeField(default=datetime.datetime.now) のようにする。 Fieldクラスのget_default()で、defaultがcallableかどうか判定してから評価されるので、これでいいみたいです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く