WSGI

wsgi-apphosting

ホスティングサーバで使うために書いた。 tokibito / wsgi-apphosting — Bitbucket 数ヶ月以内には自分とこのサーバをこれをベースにしたものに移行したいなー。今動かしてるCGIっぽい動作のものより、かなりパフォーマンスが改善される。

WSGIとDjangoのメモ

wsgiref.handlers.CGIHandlerっぽいものを自分で書いてDjangoのIt worked!を表示してみるメモ。 tests.py # coding:utf-8 from django.conf.urls.defaults import * urlpatterns = patterns('') def start_response(status, response_headers, exc_info=None…

wsgicontainerのデモムービー2

デモムービー2回目。今回はcontainercmdを中心に。 Pythonとdjangoがインストールされた環境で動かしています。 http://tokibito.orz.hm/static/movie/wsgicontainer_demo_200803042.wmv 最後に動かしているスクリプトは、 HTML崩壊 meltdown.js - KAZUMiX m…

Djangoのプロジェクトをサイトルート以外にデプロイする-解決編

というわけで解決編です。問題だったのは実はurlタグだけではなく、PATH_INFOの値を参照する部分全般に及んでいたようです。SVN版を使っている人は該当するはず。 解決方法はいたって簡単、サイトルートからのURLプレフィックスをurlsでかましてやればよいで…

Djangoのプロジェクトをサイトルート以外にデプロイしようとしたときにurlタグがおかしい

Apacheの設定で次のように書いたとする。 WSGIScriptAlias /mydjango /var/www/tokibito.orz.hm/myproject/wsgi/django.wsgi これで、"/mydjango/"でプロジェクトのルートにアクセスすることができるのだが、urlタグがうまく動かない。 {% url django.contri…

modwsgiのためのスクリプトファイル

Djangoのプロジェクトをデプロイするとき、私のサーバでのディレクトリ構造は下記のようになっている*1。 + / + var + www + www.example.com + myproject - settings.py + wsgi - django.wsgi + .python-eggsApacheでのmodwsgiの設定は、 WSGIScriptAlias /…

Webアプリをデスクトップアプリにするコンテナいろいろ

Webアプリをデスクトップアプリにするコンテナいろいろ。現時点での個人的まとめ。 Adobe AIR 言語: ActionScript? サーバ起動: 無 ブラウザ: WebKit 現時点で最強くさい雰囲気。だが開発環境が高価。 Prism 言語: ? サーバ起動: 無? ブラウザ: Mozilla 単に…

Python温泉4 Djangokitの動作とか

DjangokitはWSGIでサーバーを起動してるようだ。 ちなみにブラウザ部分は、 from Foundation import * from AppKit import * from WebKit import * とあるので、WebKitらしい。 DjangoのAdminMediaの扱い方がわかったかもしれない。

mod_wsgiをアップデートした

久しぶりに自宅サーバのmod_wsgiをアップデートした。 rev.300→rev.603 何か動作が軽くなった気がするけど気のせいかもしれない。

WSGI Containerでソースビューワを作ってみた

コンテナにドロップしたファイルのパスを、AjaxでDjangoに渡してPygmentsでハイライト。結果をExtJSのウィンドウで表示してみた。XHRが何故かPOSTにならなかったので、GETで作ることにした。 まあ、使えるかどうかって言われると微妙な代物ですが。こんなの…

ExtJSのデスクトップをWSGI Containerで動かしてみた

ExtJS 2.0のdesktopサンプルが出ていたので、WSGI Containerで動かしてみた。 表示が少しおかしい。IEで見た場合は問題なかったのでコンテナ側の問題のはずだが、原因がよくわからない。 ウィンドウやメニューは特に問題なく動作したので、チューニングすれ…

WSGI Containerへファイルをドラッグアンドドロップ

WSGI Containerへファイルをドラッグアンドドロップできるようにした。 ファイルをドロップすると、JavaScriptでcontainerFileDrop(list, x, y)を呼ぶ。

コンテナでExtJSのウィンドウを表示してみた

カテゴリタグが多くてごめんなさい。 ウィンドウの表示ができたので、早速コンテナで動かしてみた。ウィンドウの中身をautoLoadで読み込もうとしたけど、Loadingからすすまない。 汎用のAjaxコードで試してみたら普通に通った。 reSTのビューワでも作ってみ…

WSGI Containerへファイルを渡す機能など

ちまちまと更新しているWSGI Containerですが、今回は本格的にアプリを作るために必要な機能を少し実装していました。 今回作成した "containermanager.exe" はコンテナの起動と、ドロップされたファイルのパスをコンテナに通知する機能を持っています。 ド…

WSGI ContainerでGoogleMapsとTinyMCEを動かしてみた

WSGI ContainerでAjaxを使えるようになったので、でGoogleMapsとTinyMCEを動かしてみました。動作に問題は特になさそう。 ところでInstantDjangoでディスク容量を気にするなら、Pythonのライブラリをzipで扱えばいいんじゃないかと思った。Pythonて確かライ…

WSGI Containerをnamespaceベースに変更

ソースを整理してLMDDynamicNameSpace.pasを作成した。これでWSGI Containerをnamespaceベースに変更しました。XMLHttpRequestの動作も確認済み。AjaxなAPIとかの検証は週末にでも。 LMDDynamicNameSpace.pas unit LMDDynamicNameSpace; interface uses Clas…

WSGI Containerの動作方法を変更予定

WSGI Containerの動作方法は現在PluggableProtocolだが、この実装だとやっぱりAjaxのXMLHttpRequestが別ドメイン扱いでまったく動作しないので、PluggableNamespaceに切り替える予定。 つまりアドレスがwsgi:///からhttp://(namespace)/になる。 これの解決…

Instant WSGI Container

InstantDjangoにWSGI Containerを含めて、インストールレスで起動できるパッケージを作りました。Instant WSGI Containerのパッケージで、Pythonがインストールされていない環境でもすぐにWSGI Containerを利用することができます。 手順は以下に。 Instant …

WSGI Containerから外部プログラムの実行

この間作成したdcontainer.winexec部分についてデモを作ってみた。 demo/api/views.py from dcontainer import * from django.http import HttpResponseRedirect def notepad(request): winexec('notepad', 5) return HttpResponseRedirect('wsgi:///wsgicon…

WSGI Containerをインストールレスで動かす

Python2.5+Djangoのインストールレス環境として、Instant Djangoというものがある。 今回はこれに目をつけた。というか「インストールレスでここまでできてるのならコンテナもすぐ動くんじゃね?」と思ったわけです。 結論から言うと、ばっちり動きやがりま…

s5をWSGI Containerで動かす

iepngfixが動いてない。TWebBrowserではContent-Typeを指定できないせいか、XMLの宣言が入っていると、XMLとみなされてしまう。container.nwheader.deletexmlheaderで取り除いたりしたら動いた。 あと、スクロールバーがうまく消えてくれなかったので、scrol…

WSGI Containerのアップデート

0.1.3.2 → 0.1.4.2 F11キーでフルスクリーンモード Ctrl+Bでアドレスバーの表示/非表示切り換え APIの追加コンテナから呼び出されるPythonコード内で、 import dcontainer dcontainer.winexec('notepad.exe', 5) # メモ帳を起動する のように外部コマンドを…

Webサイトの改装

ようやっと余裕ができたので、Webサイトの改装をしました。かなり規模は縮小しています。 http://tokibito.orz.hm/ 今のところDjangoのフラットページしか使ってません。デザインはwww.djangoproject.comを参考にさせてもらいました。作成後に気付いたのです…

WSGI ContainerでPylonsが動いた

TurboGearsのときに学んだものがあったおかげか、割とすんなりPylonsをWSGI Containerで動かせた。

WSGI ContainerでTurboGearsが動いた

aodag隊長のおかげで動かせました!ありがとうございます! まだCookieとかの処理はできてないのでこれからです。

wsgiref.simple_server.demo_appをWSGIコンテナで動かす

今回はDjango関係なし。Pythonのライブラリに入っているwsgiref.simple_server.demo_appをWSGIコンテナで動かしてみた。コンテナのsite.wsgiを書き換えるだけで動く。 site.wsgi import string from wsgiref.simple_server import demo_app from container.m…

WSGI Containerでフラットページ

demoのアプリケーションでフラットページを使ってみました。 問題なく動作してます。

WSGI ContainerのコマンドツールでJavaScript

WSGI ContainerのコマンドツールでJavaScriptを動かせるように実装してみた。ページのほうでJavaScriptのライブラリを読み込んでいるなら、そのAPIも利用可能なはず。(未確認) E:\>containercmd -js document.write(document.title+"<br>"); document.write("br…

WSGI Containerを操作するコマンドツール

コンテナがSendMessageに対応したこともあり、折角なのでコマンドツールを作ってみた。 E:\>containercmd -py if navigator.value == 'wsgi:///': navigator.value = 'wsgi:///admin/' こんな感じでプロンプトからPythonスクリプトをコンテナに投げつけられ…

TurboGearsとWSGI

TurboGearsをコンテナでほげほげしようと思ったけど、まだ動いてない。CherryPyのWSGIの部分てややこしいな。Djangoにくらべるとスマートじゃない。 なんかapplicationを関数として呼んだときに、中で呼ばれるはずのstart_responseがDjangoの仕様とは違うみ…

djblogkitをWSGI Containerで動かしてみた

djblogkitをWSGI Containerで動かしてみた。 結論から言うと、動いた。コンテナのPOSTのクエリの処理を少し修正したので後でアップしておこう。 まあ動いたら何だって話でもあるけどね。 追記 コメントの投稿ができないと思ったらdjblogkitのバグだった・・…

WSGI ContainerでWM_COPYDATAを受信可能に

WM_COPYDATAを受け取って、受け取った文字列をPythonEngineで実行/Pythonスクリプトファイルを実行/JavaScriptとして実行をできるようにした。 ... procedure TWSGIContainerForm.CopyDataProc(var msg: TWMCopyData); var sl: TStringList; begin // WM_COP…

WSGI Container導入編

WindowsXP(32bit)を前提でPythonのインストールから書きます。 Python2.5のインストール http://www.python.jp/Zope/download/pythoncore より、python-2.5.msiをダウンロードする。 ダウンロードしたpython-2.5.msiを実行してPythonのインストールを行う。…

WSGI Containerとりあえず公開ってことで

ダウンロード http://tokibito.orz.hm/static/file/wsgicontainer.zip バックアップ置き場 http://tokibito.orz.hm/svn/wsgicontainer/trunk/

WSGI Containerプレビュー

helpdocしか入ってなくてまだドキュメントも何もないんですけど、動きますよってことで。 試してみたい方はどうぞ。 http://tokibito.orz.hm/static/file/wsgicontainerpreview.zip ちゃんと公開するときにこのファイルは削除します。 追記 日本語の混じった…

WSGIのコンテナが動いた

さていろいろ試してみたところ、無事にCookie問題も解決でき、DjangoのAdminサイトを利用できるようになりました。 モデルの追加や削除もうまく動いてます。ここまでくればそれなりにいろいろな用途に使えると思います。 細かい部分の調整もあるけど公開はど…

WSGIのソースを読んでて感じたこと

やばい、全然使い方間違ってた!あとPythonのオンラインドキュメントがすごく見づらいなーと感じた。javadocみたいな形式のがほしい。 Djangoのソースは洗練されてるなあ・・・、すごくきれいだ。 WSGIコンテナ(むしろブラウザ?)の作り方が見えてきたような…

simple_server.py

WSGIを学ぶには、Lib/wsgiref/simple_server.pyを読めばいい感じ。

DjangoのCookieについてのメモ

HttpResponse.cookiesにSet-Cookieが入ってくる。 Cookie.SimpleCookieを使っている。 HttpRequestは辞書で'COOKIE'キーを持っている。 django.httpの__init__でparse_cookie(cookie)が定義されてて、cookiedictを返す。 WSGIHandler.__call__(environ, star…

WSGIのコンテナ

連休だというのに家にこもってコード書いてます。WSGIコンテナですが、なんとかPOST動かせました。TWebBrowser.Navigate2にPostDataがあるのですが、ComのVariantな配列で、情報が少なくてちょっと大変でした。 しかしまだヘッダの処理を実装してないので、C…

WSGIコンテナのソースメモ

http://dfc.com.ru/ のIInternetProtocolのコードがベース。動けばOKな書き方なのでぐちゃぐちゃです。 Unit1.pas unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DynamicNS_D3, OleCtrl…

Djangokitモドキを作りたい

Python for Delphiを使って取得したDjangoのレスポンスをPluggable Protocolを使ってIEコンポーネントにレンダリングしようとしてみた。サーバ起動とかはしてません。 現状では単純なGETメソッドのものしか表示できてない。IInternetSessionを使っても、POST…

DjangoのWSGIを使ってレスポンスを取得してみる

今回はDjangoで作った自分のサイトhttp://tokibito.orz.hm/をちょっとサーバー動作なしで動かしてみようかと思った。 E:\WebSitesにdjango-admin.pyで作ったプロジェクトフォルダが置かれてる状態。(ソースはSVNで管理してます) とりあえずWindowsなのでコ…