スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)

    0
      JUGEMテーマ:インターネット


      あけましておめでとうございます…。
      超・ひさびさにdjangoを触ってはまったのでメモですー。

      実は今日、自分のメインサイトを某国内VPS→さくらと移転していたんですが、うっかりsvn coした最新版djangoを使ったら、HTMLテキストをそのままDBから読み出して表示していたところが全てエスケープされてしまった!

      焦ってdjangoの日本語ドキュメントを見に行ったけど、何も書いてない…。
      で、さらに焦って本家のドキュメントを見に行ったら答えがありました^^;
      http://www.djangoproject.com/documentation/templates/#automatic-html-escaping
      今後、{% autoescape off %}{% endautoescape %}で囲わないと、djangoのテンプレートシステムを使って出力する際、HTMLタグと思しき文字列は全てエスケープされるということらしいです。
      私みたいにw bodyにHTMLを直接書き込む癖がある人は気をつけましょう。

      他鯖においてるdjangoアプリもsvn updateするときは要注意…。
      新年早々お粗末さまでした。


      あと、django bookが新しくなった&全章揃ったみたいなので、そろそろ翻訳を直して公開しようかなー。なんちゃって(汗
      約2週間後〜2ヶ月間ほど、強制的に仕事ができない体になる予定なので、プリントアウトしておいてゆっくり翻訳やる予定です。(その前に誰かがやってくれてしまいそう><)


      django SQLiteでOperationalError: unable to open database file(久しぶりにdjango♪)

      0
        ここ1ヶ月、PHPの案件を2件抱えてたので、今日久しぶりにdjangoに触りました。

        すると、OperationalError: unable to open database fileというエラーが出て、どうやらSQLiteのDBファイルに書き込めないのが原因と怒られた様子。
        Linux使ってるときならともかく、今回はwindowsなのに(笑)



        結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました

        0
          O/Rマッパ書かないつもりだったんですが、テーブル数が多くて1個ずつCRUD動作を書くの面倒になってきたので、結局汎用的なO/RマッパもどきとCRUD用コントローラ(list/add/edit/delete)を書きました。



          構想2時間・コーディング1時間のやっつけ品なので(汗)まだ公開できないんですが、CIのDBクラスを使ったバージョンとadodbを使ったバージョン両方作りました。
          そのうち、ちゃんと使い方のコメントとか入れてciforgeかCodeIgniterのforumに投稿したいと思います。
          ■特徴■
          ・(少なくともCIのDBクラスを使ったほうは)PHP4も対応
          ・コントローラ1個を配置、モデルファイル×テーブル数×2を手動で作って若干の設定、routes.phpの設定をちょこっとだけで基本的なCRUD動作が完成(フォームは別です↓下記参照)
          ・CIのフォーラムに既にあるSuperModel・QuickModel等と違い、フォームデザインはVの仕事だと考えるため面倒見ません(フォームの自動生成はナシ)←私はjsで入力補助入れたり項目を動的に変更したり柔軟にフォームを変更したいので^^;
          ・django.contrib.db.models風な使い方をしたくて作ったものなので、djangoを触ったことが無い人には却って使いづらいかも(汗

          djangoな人はrhaco使いさんが多いようで、djangoとCIを両方使ってる人ってあまり居ないでしょうが(爆)
          全く需要ないかもしれませんが、お手軽CRUDとしては結構いいんじゃないかと自画自賛してみる。


          MVCのmodelはO/Rマッパとは限らない

          0
            という基本的なことを忘れてました^^;

            小規模CMS作るぐらいなら、別に気合入れてPropelとかdjango.db.models.ModelみたいなスゴイO/Rマッパ書かなくてもCodeIgniterのチュートリアルビデオみたいにDB操作用の薄いラッパとしてModelを位置づけてもいいんだよね。


            しかし、PHP4オブジェクト指向ってホント中途半端。
            pythonで文字列に至るまでオブジェクト!な世界に慣れた考えでPHP4スクリプトを書くと、1個変数を定義するのにも配列にするはめに陥る…。

            #容量的にも機能的にも特にメリットあるとは思えない鯖を使ってる企業が多いのはなんでなんだろう…。
            #代理店手数料目当ての悪徳(?)WEB屋の仕業?−−;
            #本社のWEBはRoRで動いてる(らしい)外資系企業さんなのに、同等のCMSを高い割に制限多すぎの共用鯖(PHP4/SSH使用不可/CGIはPerlのみ)で作ってほしいとか、ありえん。
            #あと2千円月額サーバー代予算を削って(爆)さくらのレンタルサーバー・ビジネス(プロ)に移転してくれたら容量同じでdjangoが使えるのにー。


            rhacoってwindowsじゃ使えないの?

            0
              CodeIgniterにはmodel(O/Rマッパ)が付属してないのでサードパーティのものを使うか自作しないとダメ。
              これが非常に面倒くさいのでrhacoに魅力を感じているんだけども、どういうわけかローカルの開発環境(WinXP)ではセットアップが全く動かない(Apacheが止まる)。私の環境(xampp)が悪いのかなぁ?試しに適当なサーバー(Linux)に上げてみるとちゃんと動く。

              rhacoな人々はMac使いと公開用鯖で直接開発する人ばかりなの?fーー;
              今回の公開鯖は既にHTMLサイトが稼働中で変なことできんのよー。
              ローカルのLinux(ノート)じゃサクサク開発ってわけにも行かないし。(エディタ使うだけなら快適なんだけど、apacheとMySQLが激しく重い)

              ああ、設置先のサーバーさえバカ高いくせに糞環境(PHP4&SSHとPythonCGIは使用不可)じゃなければorz
              djangoで作るつもりで見積もりしちゃったので、何とか簡単便利に作らないとー。
              今後は鯖環境後出し禁止にしよう。

              諦めてModelを自分で書いてCI使うかな。


              CodeIgniterでユーザー認証

              0
                CodeIgniterのscaffoldはphpMyAdminの代替(しかも一時的)にしか使えないということがわかったのでfーー;
                django.contrib.adminみたいなcoolなものでは無かった様子。

                めげてばかりもいられないので、
                ・ユーザー認証
                ・CRUD
                の作り方、要はdjangoだとcontrib.authとかcontrib.adminがやってくれちゃうところから、まず自作することにしました。 ←django流(?)に「管理画面を作ってから公開用画面を作る」です^^


                まず、「codeigniter ユーザー認証」「codeigniter authentication」等のキーワードで片っ端からググりました。
                すると、現在はCodeIgniterには純正認証フレームワークは付いておらず、サードパーティのプラグインやライブラリの形で公開されていることがわかりました。
                #いずれ認証クラスがデフォルトで付くかもしれないけど :-)

                FreakAuth
                Rapyd
                ←プラグインですがcontrib.adminみたいなものを作ってくれるやつらしい?

                どちらもアプリをフルに上書きして使う形で、既にconfigファイルを書いてしまった気の早い私には不向きです(爆)
                あと、使い方のドキュメント&インターフェイスが英語ばかりなので、習得するのに時間が掛かる&画面の日本語化メンドクサという理由で却下。


                そこで、こちらのwikiを参考にControllerをextendしたMY_Controllerを使う方法で実装してみました。


                CodeIgniter始めました

                0
                  PHP4しか入ってなくて、しかもSSH接続不可のサーバーをご契約済みのお客様に当たってしまったので、CodeIgniterを始めてみました。

                  最初は今更ながらCakeやろうかな?と思ったんですが、CodeIgniterのほうがCakeよりパフォーマンスが良いというこちらのベンチ結果を見て、パフォーマンス命!(笑)の私が飛びついたというわけ。

                  まだ使っている人が少ないせいか、symfonyやdjangoに比べてドキュメントが少ないので(日/英ともにfーー;)苦労してますが、djangoとpythonのお陰でオブジェクト指向脳&MVC脳になったせいか、処理の書き方以外の面では意外とサクサク進められてます。
                  PHP信者の方々もたまにはpythonとかdjango触ってみればいいのに(笑


                  それにしても、久しぶりに(!)djangoじゃない形でWEBアプリ作ってますが、思ったよりPHP忘れてるなぁということに気付いてしまって(滝汗
                  だって、POSTかどうか判別するのにif($_REQUEST['METHOD']=='POST')とか書いちゃうんですよ(爆 ←どんだけdjangoを愛してるんだ、私はww


                  SOHOプログラマに必要な能力

                  0
                    1つプロジェクトから抜けてちょっと自由になりましたヽ(´ー`)ノ
                    束の間ですが、今のうちに色々本を読んだり、他の人のブログを読んだり、mixiのコミュ記事をまとめ読みしたり…etc.しようと思います。
                    準備が出来たらdjango bookとかの和訳版も公開したいです♪(最近本家が更新しないのでやや不安ですが)

                    で。今日は、病院の待ち時間にボーっと考えていたことをとりとめなく書いてみます。

                    私は、恥ずかしながらどこかの会社に所属してプログラマをやったことが無く、初めからSOHOなので、プログラム関係であっても基本的には顧客から直受けで仕事をやってます。
                    なので、顧客からの依頼は千差万別だし、極めて散文的。
                    「最近流行のミクシィみたいなの、いくらで作れる?」
                    「アバターってやつ作って欲しいんだけどぉ」
                    ↑マジにこんな感じです(汗

                    こんなふうに見積もり依頼を受けたら、
                    「ミクシィの仕組みってどうなってるんだろ?」とか
                    「アバターに必要な機能は何だ?背後にどういうDBを組んでおけばいい?」とか
                    一生懸命考えます。セルフで(爆

                    考える過程で、既存のサービス(SNSならミクシィとかOpenPNEとか、ショッピングカートなら楽天とか、アバターならヤフーアバターとか)が持っている機能を解剖して、今依頼して来てるお客さんにはそのうち何が必要で、何が必要ないか考えたりします。
                    本が出ている分野なら、書店に足を運んで本を読みます。
                    ネット上に先人の残したリソースがあれば、英語だろうが独語だろうが読み漁ります。

                    つまり、誰かにヨウケンテイギとかシヨウケッテイとかされたこと無いんです(汗
                    全部自分でやります(汗


                    SOHOでWEB系プログラマの人って少ないのかもしれないけど、単にコードが書けるだけじゃなくて、↑↑こういうことができる能力があるかどうか(あるいはこれから育てられるかどうか)が分かれ目じゃないかなぁ、と思いました。

                    単に、次の仕事がシステム会社さんからの孫請けで、初めて仕様書を渡されて仕事するので(爆)それに絡めて駄文を書いてみただけでした。
                    お粗末さまですm(_ _)m


                    さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ

                    0
                      自分の趣味サイトなら喜んであれこれ探求しますが^^; 急ぎだったので結局SQLiteを使って解決しました。
                      結果、MySQL4.0系+utf8サイトは諦めたほうが早いかも??
                      (このエントリーは次回さくら使用のお客様から依頼があったときのためにメモ)

                      1.SSHでログイン。

                      2.virtual-python http://peak.telecommunity.com/dist/virtual-python.pyとez_setup http://peak.telecommunity.com/dist/ez_setup.pyのイントール。

                      3.sqlite3 http://www.sqlite.org/download.htmlのインストール。
                      ./configure --prefix=$HOME
                      make
                      make install
                      /home/****(さくらアカウント)***/bin/sqlite3にsqliteのバイナリができていることを確認。

                      4.pysqlite http://initd.org/pub/software/pysqlite/releases/のインストール。
                      微妙に最新版だとインストールでエラーになったので、2.2.2ぐらいまでバージョンを落としてみた。※今度時間のあるときに自環境でテストしてエラーが出ない最新verを探しましょう。。。

                      5.あとはXREAの時と同じように、CGI版でdjangoを使うためのセットアップの続きをします。(最近Coreserverでdjango利用報告が増えてますが^^XREAとcoreは基本的に使い方が同じなのでXREAの方法で行けます。django製3サイトXREA→core移動済みの私が保証します。笑)


                      普段MySQL愛好者の私にとっては、DBの中身がdjango.contrib.admin経由しか気軽に確認/修正できないというのは、実は非常に不安だったのですが^^;
                      検索したらsqliteのコマンドラインの使い方が見つかったので、こちらを参考にさせていただいて、MySQLからエクスポート→SQLiteへインポート&定期dump(CRON使用)処理にも無事成功しました☆


                      さくらインターネット スタンダードプランでdjango使ってる方、DBは?

                      0
                        偶々さくらをお使いのお客様からCMS/デザインの入れ替え(従来私がphp4で自作したものを使用していただいてました^^;)を依頼されてます。

                        で、折角なのでdjangoで作ってみたんですが^^;
                        DBがmysql4.0系なのが原因なのか、Unicodeエラーでさっぱり動きません。
                        元のサイトには影響でないようにサブドメを切ってテストしてますが、さくらの共用鯖でdjangoを動かしている方々は、DBどうしてますか?

                        一応解決策?としてsqlite3とpysqliteを自前でインスコ&sqliteで利用を考えてます。
                        が、以前のmysqlのデータをインポートする必要があるため、phpSQLiteAdminで簡単に操作もできたらいいなーという超わがままな条件がありまして^^;

                        php5.2.4をインスコした上で.htaccessを弄ってみましたが、phpSQLiteAdminは500エラーになってしまって動きませんでしたorz

                        最悪の場合は手動でdjango.contrib.admin上で手動コピペするかなぁ…。



                        PR

                        calendar

                        S M T W T F S
                           1234
                        567891011
                        12131415161718
                        19202122232425
                        2627282930  
                        << November 2017 >>

                        twitter

                        selected entries

                        categories

                        archives

                        recent comment

                        • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
                          プログラマー
                        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
                          よし
                        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
                          ななうぇぶ
                        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
                          よし
                        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
                          よし
                        • WindowsのPCで開発するphperがxhprofを使う方法
                          ななうぇぶ
                        • WindowsのPCで開発するphperがxhprofを使う方法
                          川本
                        • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
                          よし
                        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
                          77web
                        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
                          ktz

                        recent trackback

                        • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
                          常山日記
                        • django対symfony 日本語メール送信(その1 symfony編)
                          CPA-LABテクニカル
                        • CodeIgniterでユーザー認証
                          されどLAMPな日々
                        • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
                          常山日記
                        • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
                          サーバー用語集
                        • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
                          常山日記
                        • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
                          mitszoの日記
                        • python多次元リストをsort(並べ替え)する方法?
                          mitszoの日記
                        • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
                          Humming Via Kitchen
                        • 日本語テキストをtruncate@django(Python全般にも??)
                          常山日記

                        recommend

                        links

                        profile

                        search this site.

                        others

                        mobile

                        qrcode

                        powered

                        無料ブログ作成サービス JUGEM