Django 1.4 がもうすぐリリースされます。気になる変更をあげてみます。 QuerySet.select_for_update() https://docs.djangoproject.com/en/dev/releases/1.4/#select-for-update-support1.3 以前のバージョンで Model に対して QuerySet を使って update をするには、QuerySet に対して QuerySet.objects.filter().update() としていました。更新する全てのモデルオブジェクトのインスタンスをループして、それぞれに対して Models.objects.save() を呼んでいると、最初にそのデータを取得した時点と save() を呼ぶ時点とで競合状態になる可能性があり、データを壊してしまう可能性があります。 QuerySet.s
Read the DocsはDjango製のドキュメントビューワーで、Python向けのドキュメントフォーマットSphinxに対応しています。 Pythonで作られたソフトウェア、ライブラリのドキュメントを閲覧、検索できるソフトウェアがRead the Docsです。Sphinxで書かれたドキュメントを読み取り、リッチな表示をしてくれます。 トップページです。様々なプロジェクトが登録されています。 登録されているソフトウェアのトップページです。バージョンやリポジトリなどの情報も載っています。ここからePubやmanpageのダウンロードもできます。 ビルドのリザルト一覧です。 ドキュメントです。右側に見出しが並んでいて左側に内容が記載されています。 次のトピックにも対応していてさくさく読めます。 検索機能ももちろんあります。 ユーザごとの参加プロジェクトです。 Read the Docsは
Heroku | Cloud Application Platform Heroku と言えば Ruby/Clojure/Node ですが、 Django アプリ(というか Python アプリ)がデプロイできるようになったらしいので試してみました。 変更履歴 2011-09-21 gunicorn 対応しました github https://github.com/voluntas/heroku-template-django 環境 Mac OS X Lion でやっているので、Linux や Windows だとまた別だと思います。 必須 Git Python 2.7 Ruby (gem install heroku するためにいる) heroku にアカウントを作る というかそもそも Heroku のアカウントすら持っていなかったので、アカウント作るところから。 https://api
djangoappengine - Django App Engine backends (DB, email, etc.) Deprecation notice: This project has been dead for quite some time. Djangoappengine contains all App Engine backends for Django-nonrel, e.g. the database and email backends. In addition we provide a testapp which contains minimal settings for running Django-nonrel on App Engine. Use it as a starting point if you want to use App Engine
Yesterday I wrote briefly about my development to deployment pipeline, and I very briefly mentioned Fabric, which is a Capistrano-like tool written in Python that helps remove mindless repetition from deployment. For a long time I was content with the SSH into the server and do stuff approach to deployment (I'm not managing any large deployments, and am usually dealing with small projects without
Django Packages is a directory of reusable apps, sites, tools, and more for your Django projects. Add Package Add Grid Apps Small components used to build projects. An app is anything that is installed by placing in settings.INSTALLED_APPS. Show Apps (4,167) Frameworks Large efforts that combine many python modules or apps. Examples include Django, django-cms, and Mezzanine. Most CMSes fall into t
In developing my site for the cloud I found it a bit of a challenge. There is very little documentation in terms of infrastructure strategy and a lot of sites assume you have a clear methodology. I always strive for a clean infrastructure — having developed code for the quite awhile I have come to know that if you have a solid scalable strategy up front it makes things just work easier later on. T
If you want a solid python web framework on neat hosting infrastructure, Django and Google App Engine form a good match. Requirements Please make sure you already have installed the latest App Engine Python SDK . Being familiar with Django and App Engine is not a must but certainly won't hurt. Django 1.2 Django can be used on Google App Engine and quite some people do, but how-to information is a
kuma8さんが簡潔かつ的確なまとめを書いてくださっているが、とりあえず記録しておく。今回試した環境は、CentOS 5.2Python 2.6 Django 1.0.1-beta 必要なライブラリをインストールするServer版のCentOSを普通にインストールしたらApache2は入っているはずなので、この点は省略。今回はCentOS標準のPythonではなく、独自にインストールしたPythonを使うという前提で話を進めるので、python-develは必要ではない。 $ sudo yum install apr-devel apr-util-devel mod_wsgiをビルドするmod_wsgiの最新版2.3をダウンロードしてビルドする。使用するPythonのパスは、/usr/local/bin/python-2.6であるとする。 $ http://modwsgi.googleco
Google App Engine Python SDKにDjango(0.96)が付いてくるのは知っていたけど、普段はPylonsを使うことが多いのであまり気にかけないでいた。でも今回GAEでちょっとしたアプリケーションを開発していて、webappフレームワークでは色々無理がでると実感したので、Djangoを使うことを決心。以下、要点のまとめ。今回珍しくWindows XPで開発してます(笑 準備 この記事を書いている時点での0.96系最新版は0.96.5。ここから持ってきて設置。GAEがPython2.5系を使うので、VirtualEnvで2.5系の環境を作ってそこに放り込むのがよかろう。 GAEUnit。 プロジェクト設置(GAE) Google App Engine Launcher使えばおじさんにも一発でできる(笑 ま、空のディレクトリ作ってそこにapp.yamlとか置いてもよか
"mod_python 終了のお知らせ" を受け、もともとリソース不足だった既存の Django アプリケーション郡のサーバをリプレイスすることにしました。リプレイス要件↓ パフォーマンスが高いのにしたい アプリケーションの変更は必要最小限にしたい URL 類は既存のアプリケーションを引継ぐ: 複数プロジェクトをサブディレクトリーで運用していて、 "django.root" で複数プロジェクトを切り分けている 環境設定について これは apache - mod_wsgi が簡単すぎます。 nginx - fastcgi nginx - fastcgi 構成の場合は、init.d への登録、 daemontools を利用 (弊社は mod_python 以外はこれ)。 nginx の設定 /etc/nginx/fastcgi_params fastcgi_read_timeout 180;
社内で話題になったのでまとめる。Djangoとディレクトリトラバーサルについて。検証したバージョンは1.2.1。 ユーザの入力値などを利用してファイルパスなどを生成したりする場合やファイルをアップロードさせる場合には特に注意する。 DjangoのテンプレートやストレージAPIでは、ディレクトリトラバーサルを避けるような工夫がある。 os.path.joinに注意 よくあるパターンで、 "../" がパスに入っていると、意図しないファイルを参照するようになっていないかどうか。Windowsの場合には、パスのセパレータはバックスラッシュも使えることに注意する。 危なそうな場合は、 django.utils._os.safe_join などを利用する。 >>> BASE_DIR = '/home/tokibito/templates/' >>> import os >>> os.path.joi
Web Cookies Scanner All-in-one free web application security tool. Web application vulnerability and privacy scanner with support for HTTP cookies, Flash, HTML5 localStorage, sessionStorage, CANVAS, Supercookies, Evercookies. Includes a free SSL/TLS, HTML and HTTP vulnerability scanner and URL malware scanner.
CloudCourseはPython製/Google App Engine用のオープンソース・ソフトウェア。最近は社内教育にあまり力を入れない傾向がある。中途入社で即戦力、個々人で勉強などが盛んで、その結果として社内のナレッジ共有がおろそかになっている。 オンラインで教育管理 セキュリティ管理など、システム面で対応するよりも社内教育を率先すべき事項はたくさんある。そのためのシステムとしてGooglerが開発したのがCloudCourseだ。 CloudCourseは個々人が自由に社内向けセミナーを追加できるシステムで、セミナー以下にセッションがついて管理される。スピーカーを依頼したり、セッションに申し込んだりするのもオンライン上だ。システムはDjangoを使っており、管理画面はまさにDjangoのそれになっている。 管理画面 おそらくGoogle自体でも毎日多数のセッションが行われているの
フィクスチャのメンテナンスが大変で、何かないかなって探してて見つけた。 django-autofixture 0.12.1 : Python Package Index Djangoのモデルのメタ情報からフィクスチャデータを適当に作ってくれたりする。 Railsだとfactory_girlみたいなもの。 こんな感じで書ける。 from django.db import models from django.test import TestCase from autofixture.base import AutoFixture class MyModel(models.Model): name = models.CharField(max_length=20) class MyTestCase(TestCase): def test_create(self): filler = AutoF
社内チャットで出た質問。GETパラメータによって呼び出すビューを変えたい場合はどう書くとよいか。 クラスベースのビューを書くと割ときれいに書けるんじゃないかな、という話。 まずは素直に書いてみる。 def index(request): action = request.GET.get('action', '') if action == '': return view_default(request) elif action == 'abc': return view_abc(request) raise Http404 まあ、1回しか使わなくて特に変更も多くない、呼び出すビューの数も少ないというならこれでも良いのだけど、たとえば呼び出すビュー50個とか100個になってくるとメンテするのが大変になってくる。 djangoのviewはcallableであればよいので、クラスベースのビューを
TEST_NAME DatabaseWrapper()を使って手動でデータベース接続を作った場合にもこの変更が必要です。 この変更に加え、Django1.2はbuild-inのデータベースバックエンドに関する特殊なハンドリングも廃止します。全てのデータベースバックエンドは完全なモジュール名で設定しなければなりません(postgresql_psycopg2のかわりにdjango.db.backends.postgresql_psycopg2のように設定します)。 modelインスタンスの__dict__ これまでmodelインスタンスの__dict__はmodelのフィールドに関する属性のみを含んでいました。 マルチデータベースのサポートにより、Django1.2はのmodelインスタンスは_state属性を持つようになりました。_stateはmodelインスタンスの__dict__に現れま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く